|
|
|
| Задача такая, посчитать колво внешних ссылок на странице.
Я ввожу урл, жму проверить и у меня выдается разного рода статистика по этому сайту. Большинство модулей я уже сделал (PR, Compete etc), сейчас надо сделать подсчет внешних ссылок на странице, и у меня проблема, как из кучи html тегов запарсить в масив все урлы ссылок <a href="#">link</a>
Подскажите плз. | |
|
|
|
|
|
|
|
для: школьник
(21.05.2008 в 00:49)
| |
<?
$str = 'text
text site text
text url text
text <a href=\'http://test.ru\'>test</a> text';
preg_match_all('#href\s*=\s*("|\')?(.*?)("|\'|\s|> )#si',$str,$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(21.05.2008 в 08:06)
| | есть проблема!
если контент который в одну строчку то и запись в элементы масива тоже происходит в одну строчку.
пример:
<?php
$contents = 'text <a href=\'http://test.ru\'>test</a> text text <a href=\'http://test.ru\'>test</a> text text <a href=\'http://test.ru\'>test</a> text
text <a href=\'http://test.ru\'>test</a> text
text <a href=\'http://test.ru\'>test</a> text';
$pattern = '|<a(.*)href=(.*)>(.*)</a>|';
preg_match_all($pattern, $contents, $out);
print_r($out[0]);
?>
|
результат:
Array
(
[0] => <a href='http://test.ru'>test</a> text text <a href='http://test.ru'>test</a> text text <a href='http://test.ru'>test</a>
[1] => <a href='http://test.ru'>test</a>
[2] => <a href='http://test.ru'>test</a>
)
|
тобишь с таким выводом работать не возможно.
помогите решить проблему, чтобы можно было формировать элементы массива ссылками даже если контент в одну строчку и возможно без пробелов | |
|
|
|
|
|
|
|
для: школьник
(22.05.2008 в 14:04)
| | Если вам нужны именно урлы, добавьте модификатор U(меняет жадность).
$pattern = '|<a(.*)href=(.*)>(.*)</a>|U';
|
P.S. Если ссылки регистрозависимые, добавьте также модификатор i. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.05.2008 в 20:33)
| | Спасибо)! | |
|
|
|