Autor Zpráva
Jack06
Profil
Dobrý den, nějak se nemohu poprat s tím, jak vypsat všechny url typů: http://www.example.com/, http://example.com/, www.example.com ze souvislého textu i z tagů.

tímto scriptem dostanu celý web ve tvaru stringu a z něj bych chtěl vytahat všechny url, které ten string obsahuje. Díky za pomoc..
$string = htmlspecialchars(file_get_contents('http://www.example.com/'));
DoubleThink
Profil *
Zkus tento regulární výraz:
\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]
Jack06
Profil
No nevím, nějako mi to nechce fungovat, je možné že to dělám špatně. Zkusíš, jestli ti to pujde třebas s te stringem z:
$string = htmlspecialchars(file_get_contents("http://www.superpokec.cz"));


pokud jo, napsat mi jak jsi ten regulární řetězec použil.. moc mi práce s regulárními řetězci nejde. Díky
DoubleThink
Profil *
$str = <<<STR
Dobrý den, nějak se nemohu poprat s tím, jak vypsat
všechny url typů: http://www.example.com/, 
http://example.com/, www.example.com ze souvislého
textu i z tagů.'
STR;

preg_match_all('^\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]^i', $str, $matches);

print_r($matches);

/*  Array (
        [0] => Array (
                [0] => http://www.example.com/
                [1] => http://example.com/
                [2] => www.example.com
            )
    )
*/
Jack06
Profil
Aha děkuji, chybělo mi ukončení řetězce :-(

Akorát nevím, proč, ale nevypisuje to všechny url na stránce.. Vypíše jich většinu u nějakých i k souborům : example.com/neco.php atd, ale ne všechny.. Tam to je nějak omezené nebo není? V tom reg. výrazu?

No, možná už vím.. nejspíše by bylo lepší, pokud to jde, vyhledat vše co je v a href jako odkaz

Moderátor Joker: Tři příspěvky sloučeny do jednoho
Jack06
Profil
DoubleThink:
Dokázal by jsi porsím napsat regulární výraz, který by vypsal vše, co je v:
<a href=toto vypsat ></a>
<a href='toto vypsat' ></a>
<a href="toto vypsat" ></a>

? Zkoušel jsem různě upravovat to co jsi mi poslal, ale vypisovalo mi to jenom ty href= Děkuji

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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