Autor Zpráva
rudla
Profil
Ahoj,
chtěl bych se zeptat, jakým způsobem lze vytáhnout část dat - textu v <body> z odkazu na jinou stránku na cizím serveru.
Asi nějak tak, jak to je na sociálních sítích, když sdílím odkaz.
Lze něco takového napsat?

Děkuju moc za návrhy.
Taps
Profil
rudla:
php - regulární výrazy
<?
preg_match_all();
preg_match();
?>
rudla
Profil
Taps:
Dalo by se to nějak upřesnit/doplnit? Nejsem si jist, jak bych to dělal.
Taps
Profil
rudla:
$zdroj=file_get_contents("http://webovastranka.cz");
preg_match_all('~<a href="(.*?)">(.*?)</a>~is', $zdroj, $vystup);
print_r($vystup);
rudla
Profil
Taps:
Parse error: syntax error, unexpected T_STRING in ... on line 3
Taps
Profil
rudla:
chyběl mi tam středník :-)
Keeehi
Profil
Ten regulár nebude moc dobrý, už jenom proto, že v tom odkazu nesmí být napsané nic.

Toto je obecnější:
'~<a.+?href=(?:"|\')(.*?)(?:"|\')[^>]*>(.*?)</a>~is'


Máš tam fille_get_contents s dvěma L.
rudla
Profil
Taps:
Jo, to funguje, existuje ještě podobný způsob, jak získat titulek stránky?
Díky!
Keeehi
Profil
'~<title>(.*?)</title>~is'
rudla
Profil
Keeehi:
Takže pak už stačí jen dát
'~<cokoli>(.*?)</cokoli>~is'
A obsah "cokoli" budu mít?

Díky Vám. ;)
Keeehi
Profil
rudla:
Ano, ale funguje to jen v případech, kdy tagy nemají atributy. Obecnější by bylo:
'~<cokoli.*?>(.*?)</cokoli>~is'

Navíc, při určitých konstrukcích ani toto není dokonalé.
při aplikaci '~<div.*?>(.*?)</div>~is'na <div><div>ahoj</div></div> je výsledek <div>ahoj což asi není to, co bychom si představovali.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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