|
|
|
| просмотрел все сообщения форума, но ничего не помогло ...
итак, есть код :
<?php
$x = "<a href =/asfasf/as?sf> 1</a><a href = 'sss'>2</a> <a href=\"Ӓ/sas/\" target=\"2\">3</a> <a href=\"/news/?id=1\" style=\"padding-right: 8px;\">4</a>
<a href=\"/news/\" >5 </a><a name=4>эта ссылка не входит в список</a>";
preg_match_all('/<a(?:.+)href[\s]*=[\s]*(?:\s|\"|\')?([^\'\"\>]+)(?:\"|\')?[^>]*>([^<]*)<\/a>/iU',$x,$hrefs);
echo"<pre>";
print_r($hrefs);
echo"</pre>";
?>
|
$hrefs[1] - это url
$hrefs[2] - это то, что между <a></a>
но! в $hrefs[1] почему-то только по 1 символу от url ?! :(
HELP! | |
|
|
|
|
|
|
|
для: goddamn
(19.11.2005 в 03:36)
| | ух, разобрался! :)
так работает
<?php
$x = "<a href =/asfasf/as?sf> 1</a><a href = 'sss'>2</a> <a href=\"Ӓ/sas/\" target=\"2\">3</a> <a href=\"/news/?id=1\" style=\"padding-right: 8px;\">4</a>
<a href=\"/news/\" >5 </a><a name=4>эта ссылка не входит в список</a>";
preg_match_all('/<a[\'\"\=\-\_\w\s\d]+href[\s]*=[\s]*[\"|\']?([^\'\"\>]+)[\"|\']?[^>]*>([^<]+)<\/a>/i',$x,$hrefs);
echo"<pre>";
print_r($hrefs);
echo"</pre>";
?>
|
но опять же, конструкция <a href="aaa"><img></a> не работает. вместо <img> может быть любой тэг, как то:<p>,<i>,<u> и т.д. , т.е. срабатывает ([^<]+) .... что же делать ?
гуру ! где вы ???! :)
или предварительно заменять все <tag> например на [tag]... а потом уже искать ссылки ? | |
|
|
|
|
|
|
|
для: goddamn
(19.11.2005 в 05:18)
| | Давайте исходный текст, чтобы ситуацию воспроизвести можно было... | |
|
|
|
|
|
|
|
для: cheops
(19.11.2005 в 11:55)
| | так вот же :)
вроде учел всевозможные разновидности (более-менее разумные) написания ....
<?php
$x = "<a href =/asfasf/as?sf class='wew'> <span>llalalal</span> 1</a><a href = 'sss'>2</a> <a style='none' href=\"Ӓ/sas/\" target=\"2\">3</a> <a href=\"http://127.0.0.1/design/?id=2&subid=t\" style=\"padding-right: 8px;\"> 4 </a>
<a href=\"/news/\" >5 </a><a title=\"Смотреть описание\" href=\"./soft.php?id=2&show=5\"><img src=\"/path/to/pic/pic.gif\">6</a><a name=4>эта ссылка не входит в список</a>";
?>
|
| |
|
|
|