Alle links ophalen van een pagina.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

25/04/2024 18:55:39
 
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

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.