Alle links ophalen van een pagina.
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)
1
2
3
4
5
6
7
8
9
10
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>";
?>
$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
mss is dit wat ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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 ....
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 --
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:
Kon toch wel goed met substr thnx Flip
Heb het probleem opgelost:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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>";
?>
$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