Versio

Alle links ophalen van een pagina.

Overzicht Reageren

Thijs X

Thijs X

12/05/2007 15:22:00
Quote Anchor link
Hallo allemaal ^^

Zit met hetvolgende probleem:
Ik wil van een bepaalde pagina, alle tekst hebben die tussen de <a> </a> tags staan. Heb al wel het een en andere geprobeerd maar ben erg slecht met die regex.

Heb nu hetvolgende en krijg ik ook al een mooi lijstje met links maar wil alleen de tekst overhouden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$url
= 'http://nl.wikipedia.org/wiki/Lijst_van_beroepen';
$bron = file_get_contents($url);

preg_match_all("#<li>(.*?)</li>#s", $bron, $links);

echo "<pre>";
echo print_r($links);
echo "</pre>";
?>


Nog even voor de duidelijkheid:

<a href="dit is een link.html"> Hier tekst </a>
Dan wil ik alleen de tekst "Hier tekst" eruithalen.
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
 
PHP hulp

PHP hulp

23/05/2012 21:06:41
Gesponsorde koppelingen:
 
Flip

Flip

12/05/2007 20:46:00
Quote Anchor link
ik heb ook een tijd geleden iets geprobeert met regular expressions te maken maar ik vond het toch behoorlijk ingewikkeld.
mss is dit wat ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
while (document doorzoeken is nog niet klaar) {
$positie_<a = strpos("document", "<a", $vorige_<a_gevonden);
$positie_> = strpos("document", ">", $positie_<a);
$positie_< = strpos("document", "<", $positie_>;
$link = substr("document", $positie_>+1, $positie_< - $positie_>);
$vorige_<a_gevonden = $positie_<a;
}
 [
/code]

zoiets. je kan ook ipv een heel document te doorzoeken als geheel het regel voor regel doen
$document_in_regels = explode (document, "\n");
en dan foreach $document as $regel ....
Gewijzigd op 01/01/1970 01:00:00 door Flip
 
Thijs X

Thijs X

13/05/2007 12:51:00
Quote Anchor link
@ Flip,
Helaaas gaat dat zo niet werken, omdat die site waarvan ik het vandaan wil hebben is de link ook steeds net iets anders. Vandaar dat het wel moet met preg_match of iets soort gelijks.
Heb het antwoord nog steeds niet gevonden dus als iemand nog een idee heeft?

Edit:

Heb het probleem opgelost:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$url
= 'http://nl.wikipedia.org/wiki/Lijst_van_beroepen';
$bron = file_get_contents($url);

preg_match_all("#<li>(.*?)</li>#s", $bron, $links);

$link = array();

for($i=0; $i <= count($links[1])-1; $i++)
{

    $positie_begin = strpos($links[1][$i], "\">");
    $positie_eind = strpos($links[1][$i], "</a>");
    $link[] = substr($links[1][$i], ($positie_begin + 2), ($positie_eind - $positie_begin - 2));
}

    
echo "<pre>";
print_r($link);
echo "</pre>";
?>

Kon toch wel goed met substr thnx Flip
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
 



Overzicht Reageren