Составить регулярное выражение

Статус
В этой теме нельзя размещать новые ответы.
PHP:
while ($count != 1) { 
$str=trim(fgets($f1, 100)); //адрес страницы с картинкой
$txtsave=array();
$stro = file_get_contents($str);
echo $stro; //ничего не воыводит, почему? Функция в пхпини включена
preg_match_all( '/<img border=\'0\' alt="Эмма Уотсон (Emma Watson)" src=\'(.+?)\'/', $stro, $txtsave );
print_r($txtsave); // тоже пустой массив
так попробуй
зачем использовать мега сложные фун-ции если есть trim
 
Все равно не работает. Массив print_r($txtsave) выдает вот что:

Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )


Даже если не с файла получать, а самому. Вот:

PHP:
$str="http://www.kinopoisk.ru/picture/926577"; 
$txtsave=array(); 
$stro = file_get_contents($str); 
preg_match_all( '/<img border=\'0\' alt="Эмма Уотсон (Emma Watson)" src=\'(.+?)\'/', $stro, $txtsave ); 
print_r($txtsave); // опять пустой массив

Выводит

Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )


why? мб потому что денвере и надо что-то включить? Как будто сам контент страницы не открывается в получении контента
 
Посмотри содержимое переменной
Код:
$stro = file_get_contents($str);
Если пустая или явно не то, что если зайти по урлу через браузер, значит скорее всего сайт определяет по UA что скачивает PHP, и посылает **х. Защита от дураков.
Если html качается то проблема в регулярном выражении.
зачем использовать мега сложные фун-ции если есть trim
Если для кого-то элементарное кажется МЕГА-сложным, это его проблеммы;).
 
Вобщем скрипт работает как надо, проблемы в кинопоиске, т.к. там какая-то защита от парсинга. Подсказали, что надо юзать куки. Только как?

Курлом получилось один раз, потом ип забанили
 
А смысле ждать? Одну утяну и опять в бан.
 
Одну страницу? Или ты ошибся, или там еще какая-то хитрая защита. Обычно бан идет после некоторого количества страниц. Может еще сервер следит за временем обращения - к примеру если качается одна за другой 10 страниц без интервала, сразу - ясно что это бот.
 
Спарсил только главную... второй раз - уже бан ип
 
Самы простой способ на мой взгляд это использовать Simple HTML DOM Parser. для парсинга html.
PHP:
foreach($html->find('a') as $links) { // запускаем цикл, и ищем все теги А <a>бла бла</a>, вся ссылка с акром будет записанна в $links, $html - тут лежит вся страница
if(preg_match('/ src=\'(.+?)\'/', $links, $result)){ // $result - массив в $result[0] найденая строка, $links - где ищем, а вот и наше регулярное выражение '/ src=\'(.+?)\'/
//тут делаешь что тебе будет угодно
}
Пока как то так!

да и не забудь подключиь сам фаил Для просмотра ссылки Войди или Зарегистрируйся, делается этопросто через include('*.php');
 
Проверил, у мя все нормально. Он смотрит на UA и если UA соответствует библиотеке парсинга пишет что ваш ip забанен, хотя реально он не забанен.
Используй curl или сокеты. Выставляй UA какого-нибудь браузера.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху