Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчитать количество внешних ссылок на странице
 
 автор: школьник   (21.05.2008 в 00:49)   письмо автору
 
 

Задача такая, посчитать колво внешних ссылок на странице.

Я ввожу урл, жму проверить и у меня выдается разного рода статистика по этому сайту. Большинство модулей я уже сделал (PR, Compete etc), сейчас надо сделать подсчет внешних ссылок на странице, и у меня проблема, как из кучи html тегов запарсить в масив все урлы ссылок <a href="#">link</a>

Подскажите плз.

   
 
 автор: mihdan   (21.05.2008 в 08:06)   письмо автору
 
   для: школьник   (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>';
?>

   
 
 автор: школьник   (22.05.2008 в 14:04)   письмо автору
 
   для: 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>

)


тобишь с таким выводом работать не возможно.

помогите решить проблему, чтобы можно было формировать элементы массива ссылками даже если контент в одну строчку и возможно без пробелов

   
 
 автор: AcidTrash   (22.05.2008 в 20:33)   письмо автору
 
   для: школьник   (22.05.2008 в 14:04)
 

Если вам нужны именно урлы, добавьте модификатор U(меняет жадность).
$pattern = '|<a(.*)href=(.*)>(.*)</a>|U';


P.S. Если ссылки регистрозависимые, добавьте также модификатор i.

   
 
 автор: школьник   (22.05.2008 в 21:29)   письмо автору
 
   для: AcidTrash   (22.05.2008 в 20:33)
 

Спасибо)!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования