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

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

Rigor

Профессор
Регистрация
1 Июн 2008
Сообщения
203
Реакции
35
Нужно выдрать картинки, не могу составить регулярку для preg_match_all

Вот что есть на странице
Код:
	<td width=1000><a href="/picture/926191/"><img border='0' alt="Эмма Уотсон (Emma Watson)" src='/im/kadr/9/2/6/kinopoisk.ru-Emma-Watson-926577.jpg' width='1000' height='1358' style="border:1px solid #777" onLoad=''></a></td>

src картинки нужно получить. Заранее спасибо
 
PHP:
if (preg_match('/<img border=\'0\' alt=".+?" src=\'(.+?)\'/', $text, $tmp)) {
	$src_lnk = $tmp[1];
} else {
	$src_lnk = "";
}
и советую скачать и пользоваться RegEx Buddy ( смотри на форуме )
 
если все то preg_match_all
а регулярку можно использовать по проще

PHP:
$pattern="#<img.+?src=\'(.+?)\'.+?>#" ;

и если захочешт слить картинки то необходимо будет дописать урл страницы
PHP:
preg_match_all($pattern, $content, $cur_arr);
for($i=0;$i<count($cur_arr[0]);$i++)
{
$img_url[]="http://www.kinopoisk.ru".$cur_arr[1][$i];
}
 
Что неравильно в этом скрипте(отрывок:(

Код:
while ($count != 1) { 
$str=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); // тоже пустой массив
 
Что неравильно в этом скрипте(отрывок:(

Код:
while ($count != 1) { 
$str=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); // тоже пустой массив

Зачем используешь fgets и file_get_contents в одном месте?
Что ты хочешь сделать? Считать файл в строку?
Тогда так:
PHP:
$str = "ссылка на хтмлку";
$file_str = file_get_contents($str); //получаем содержимое файла
echo htmlspecialchars($file_str); //печатаем полученную строку

Получить потом из строки нужные данные так:
PHP:
$pattern="#<img.+?src=\'(.+?)\'.+?>#" ; //шаблон длязборки строки
preg_match_all($pattern, $file_str, $txtsave); //сама разборка строки
print_r($txtsave); // теперь не пустой массив
 
Я получаю адрес с файла, а file_get_contents - получаю контент на странице... вобщем мне нужно открыть и получить эту страницу.
 
Скорее всего от того что fgets берет строку вместе с символами переноса строки. Удали их.
 
А как их удалить? Символы /n ? прегреплейсом?
 
Ага, только \r и \n. Или чтоб наверняка:
Код:
preg_replace('/\R/','',$text);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху