Помогите с парсингом

Статус
В этой теме нельзя размещать новые ответы.

Jed7777

Постоялец
Регистрация
17 Июл 2008
Сообщения
136
Реакции
120
Есть код:
PHP:
<?
function browser2($url) {
       $url = 'http://depositfiles.com/ru/files/8wdqykds2';
       $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/depo/cookies.txt';
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_URL,$url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
       curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
	   curl_setopt($ch, CURLOPT_COOKIEJAR,  $user_cookie_file);
       $html = curl_exec($ch);
       curl_close($ch);
	   $shab = '(?<=\<a href\=\").*(?=\"\>ПО)';
	   preg_match_all($shab,$html,$mat);
	   echo $mat;
       }
echo browser2($url);
?>
В нем мне нужно сграбить информацию с сайта (работает нормально), потом с помощью регулярки (регулярка верна) вытащить определенную ссылку.
На счет ссылки не получается, пишет:
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '.' in Z:\home\test1.ru\www\depo\skil.php on line 14
В чем проблема?
У Вас запустить его не получится так как нет $user_cookie_file .
 
он у тебя скобки воспринимает как ограничители регулярного выражения...
PHP:
$shab = '#(?<=\<a href\=\").*(?=\"\>ПО)#';
так будет правильно... или любые другие 2 одинаковых символа в начале и конце регулярки.
 
PHP:
$shab = '/(?<=\<a href\=\").*(?=\"\>ПО)/';
 
Поправил:
PHP:
for ($i=0;$i<preg_match_all($shab,$html,$mat);$i++){
      echo $shab[1][$i];
      }
 
и правильно))) а что он по твоему должен выдавать? =)
preg_match_all тебе на выходе отдает массив...
и вообще нафига 2 раза echo?
в функции замени
PHP:
echo $mat;
на
PHP:
return $mat;
а на печать выводи так:
PHP:
print_r(browser2($url));

P.s.: Или как предложил Nevep циклом...
 
во-первых нафига 2 раза echo?
ну я это для примера привёл, чтоб у Jed7777 вопросов невозникло как вывести следующее значение.

Добавлено через 3 минуты
Значит нету
PHP:
'#(?<=\<a href\=\").*(?=\"\>ПО)#'
в $html
 
Проверял. Цикл работает.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху