Autor | Zpráva | ||
---|---|---|---|
matak Profil |
#1 · Zasláno: 16. 5. 2010, 16:04:07
Jak napsat regulár, který dokáže bezpečně poznat interní a externí adresu? z "href" v odkazu?
|
||
Majkl578 Profil |
#2 · Zasláno: 16. 5. 2010, 21:47:51 · Upravil/a: Majkl578
Pokud „interní“ = v rámci webové stránky a „externí“ = jinam, tak bych zkusil něco na tomto principu:
$data = <<< DATA <a href="/x/y/z.foo">foo</a> <a href="http://seznam.cz/">foo</a> <a href="http://foo.google.com/~xe/qwert">foo</a> <a href="http://local/xyz">foo</a> DATA; preg_match_all('~\<a.*href\="(.+)".*\>~U', $data, $hrefs); $internal = preg_grep('~ (^/) #začíná / | (^(ht|f)tps?\://([\w\-]+\.)*' . preg_quote($_SERVER['HTTP_HOST'], '~') . '/) #url začíná adresou našeho serveru ~xi', $hrefs[1]); var_dump($internal, $external = array_diff($hrefs[1], $internal)); |
||
matak Profil |
#3 · Zasláno: 16. 5. 2010, 21:55:18
díky, super, zkusím, kdyby něco dám vědět
|
||
matak Profil |
#4 · Zasláno: 17. 5. 2010, 11:00:29
co třeba odkaz typu href="index.php?neco=1"
to nechytne ne a hlavne nebylo by lepsi to obratit? hledat externi odkazy? a vylucujici metodou urcit interni? |
||
Časová prodleva: 14 let
|
0