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

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

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

 

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

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

тема: Подсчет внешних ссылок
 
 автор: ntro123   (05.08.2009 в 11:39)   письмо автору
 
 

Знаю тема не нова поиск юзал нашел многое но все нето =(

есть много ссылок оч много ...

и в каждой ссылки нужно найти колво вней внешних

$f = file_get_contents("http://www.google.ru/");
$sher = "#<a.*?href=\"(.+?)\".*?>.+</a>.{0,}<a.*?href=\"(.+?)\".*?>.+</a>#";

preg_match_all($sher, $f, $outY);
echo $outY[1][0]."<br>";
echo $outY[2][0]."<br>";
echo $outY[3][0]."<br>";


первую ссылку выводит без проблем. и последнию тоже ...
я знаю почему но нечего поделать не могу.
смотрим переменную$sher
<a.*?href=\"(.+?)\".*?>.+</a> // находит первую ссылку http://images.google.ru/imghp?hl=ru&tab=wi
.{0,} //после неё все что угодно но идет почемуто до последнего свопадения а не до следушего
<a.*?href=\"(.+?)\".*?>.+</a> // находит мне последнию ссылку intl/ru/privacy.html


как сделать так чтобы тупо ВСЕ совпадения, не только первое и поледнее поподали в массив $outY???
не предлогать сервиса по подчету внешних ссылок.
и не давать тупые функции из поиска поп форуму.
просто нужно все ссылки по мосивам а дальше уже сам савню и узнаю какие внешнии!

надеюсь все объяснил нечего не пропустил ... (и разделом не ошибся) уже 4-5 день бьюсь =((

помогите пожалуйста!!!!

  Ответить  
 
 автор: exp   (05.08.2009 в 12:10)   письмо автору
 
   для: ntro123   (05.08.2009 в 11:39)
 

.+</a>

это всё .+ в себя вбирает наверное

.+? нежадная разновидность .+

  Ответить  
 
 автор: speedsoft   (05.08.2009 в 12:38)   письмо автору
 
   для: ntro123   (05.08.2009 в 11:39)
 

        
preg_match_all("/<a.*?href=\"(.*?)\">.*?<\/a>/is", $htmlcode,$match,PREG_SET_ORDER);
        foreach ($match as $k=>$v) {
            echo "$v[1]<br>";
        }

  Ответить  
 
 автор: speedsoft   (05.08.2009 в 12:41)   письмо автору
 
   для: speedsoft   (05.08.2009 в 12:38)
 

сорри, проверил на гугле, тот код подглючивает. вот для гугла рабочий (и для остальных тоже

        $mega = file_get_contents("http://www.google.ru/"); 
        preg_match_all("/<a.*?href=\"(.*?)\"*.?>.*?<\/a>/i", $mega,$match,PREG_SET_ORDER);
        foreach ($match as $k=>$v) {
            echo "$v[1]<br>";
        }

  Ответить  
Rambler's Top100
вверх

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