Autor Zpráva
pogg
Profil
Zdravím všechny...

Chtěl bych poprosit o radu s funkcí file_get_contents($filename).

Potřeboval bych z jedné svojí stránky vytáhnout všechny odkazy, které jsou uvozeny mezi <li>.....</li>

podle diskuzí zde uvedených jsem se dobral k tomuto:

$filename = "http://www.domena.cz/";
$page = file_get_contents($filename);

preg_match("~<li>(.+?)</li>~si", $page, $out);
print_r($out[1]);


ale výstup mi vyhodí:

<a href="xxx">xxx</a>

Tzn. vyhodí vždy jen první obsah mezi <li>.....</li>, které najde na té stránce.
Nevím však jak dosáhnout vypsání všech obsahů mezi <li>.....</li>.
Asi nejaká podmínka.

Mohl by někdo poradit, děkuji....
lagin
Profil
print_r($out[1]); //Timhle vypisujes jenom druhy prvek pole. ;)

foreach($out as $outone) {
echo $outone;
}
pogg
Profil
lagin

uprava tedy
preg_match("~<li>(.+?)</li>~si", $page, $out);
foreach($out as $outone) {
echo $outone;
}

to mi vypíše stále jen ten první nalezeny, jen s tím rozdílem, že přidá
<li><a href="xxx">xxx</a></li><a href="xxx">xxx</a>

takže to neřeší ten problém, ale díky
Alphard
Profil
použijte funkci preg_match_all()
pogg
Profil
Alphard
mohu nějakou jednoduchy příklad???
funkci neznám díky....
pogg
Profil
Tak již jsem dosáhl výsledku díky Alphard

preg_match_all("~<li>(.+?)</li>~si", $page, $out);
print_r($out[1]);

jen je ještě problém, že to vypíše v poli:

Array
(
[0] => <a href="xxx">xxx</a>
[1] => <a href="yyy">yyy</a>
[2] => <a href="zzz">zzz</a>
)
lagin
Profil
preg_match_all("~<li>(.+?)</li>~si", $page, $out);
$links = $out[1];
foreach($links as $link) {
    echo $link . "\n";
} 
tiso
Profil
pogg no a na to pole funguje ten foreach..., takže:
foreach($out[1] as $item){
    ...
}
pogg
Profil
Pánové klobouk dolů před vámi

lagin

skvěle to funguje, nenapadlo mě to spojit :D

Ještě jednou díky moc.....

Vyřešeno(Kbyby to někdo potřeboval celé to je)

$filename = "http://www.domena.cz/";
$page = file_get_contents($filename);
preg_match_all("~<li>(.+?)</li>~si", $page, $out);
$links = $out[1];
foreach($links as $link) {
echo $link . "\n";
}
pogg
Profil
Díky všem za přízpěvky ještě se toho mám dost co učit :D
lagin
Profil
Neni zac, ale nejvic dik asi Alphardovi. :) To _all bylo stezejni. :) Mozna bych mel nejdriv poradne koukat. :-D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: