Кто-то может помочь ?
Спустя 34 минуты, 9 секунд (20.02.2011 - 01:07) DedMorozzz написал(а):
$a = preg_replace('#<img.*?src *= *(\'|")(.*?)//1.*?>#','$2',$a);
Спустя 1 минута, 41 секунда (20.02.2011 - 01:09) RCuPeR написал(а):
Спасибо, сейчас попробую.
Спустя 6 минут, 50 секунд (20.02.2011 - 01:16) RCuPeR написал(а):
Молчит =(
<?php
set_time_limit(0);
$curl = curl_init();
$url = 'google.com';
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13");
$res = curl_exec($curl);
curl_close($curl);
preg_match_all('#<img.*?src *= *(\'|")(.*?)//1.*?>#','$2', $res, $matches, PREG_PATTERN_ORDER);
print_r($matches[1]);
?>
Спустя 1 час, 50 минут, 3 секунды (20.02.2011 - 03:06) DedMorozzz написал(а):
Дык я с прег реплейсом написал.
В твоём случае так. Распечатай весь массив матчес, там скорее всего не 1й элемент будет.
preg_match_all('#<img.*?src *= *(\'|")(.*?)\\1.*?>#', $res, $matches, PREG_PATTERN_ORDER);
В твоём случае так. Распечатай весь массив матчес, там скорее всего не 1й элемент будет.
Спустя 8 часов, 17 минут, 46 секунд (20.02.2011 - 11:24) DedMorozzz написал(а):
Кстати, там исправил:
//1 на \\1
//1 на \\1
Спустя 15 минут, 46 секунд (20.02.2011 - 11:39) RCuPeR написал(а):
print_r($matches); говорит:
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
Спустя 1 час, 22 минуты, 12 секунд (20.02.2011 - 13:01) Winston написал(а):
Вот:
Все адреса будут в $matches[2][0...N]
preg_match_all('#<img\s*src\s*=\s*(\'|")(.*?)\\1\s*>#', $res, $matches);
echo $matches[2][0];
Все адреса будут в $matches[2][0...N]
Спустя 2 часа, 49 минут, 36 секунд (20.02.2011 - 15:51) DedMorozzz написал(а):
тока не \\1\s*> ,а \\1.*?>
Спустя 5 минут, 28 секунд (20.02.2011 - 15:57) Winston написал(а):
Цитата (DedMorozzz @ 20.02.2011 - 14:51) |
тока не \\1\s*> ,а \\1.*?> |
Тогда же с модификатором s
(.) - это не пробельный символ.
Спустя 13 минут, 43 секунды (20.02.2011 - 16:10) DedMorozzz написал(а):
Цитата |
(.) - это не пробельный символ. |
откуда такая информация
Спустя 11 минут, 22 секунды (20.02.2011 - 16:22) Winston написал(а):
Ааа... протупил, с мод. s включается и перенос строки.
Спустя 5 часов, 4 минуты, 58 секунд (20.02.2011 - 21:27) RCuPeR написал(а):
Спасибо ! Всё работает !
Можно усложнить задачу, думаю, кому-то пригодится ?
На данном этапе вытаскиваются ВСЕ картинки, можно сделать, что бы вытаскивались картинки с чётко заданным width='' и height='' ?
Можно усложнить задачу, думаю, кому-то пригодится ?
На данном этапе вытаскиваются ВСЕ картинки, можно сделать, что бы вытаскивались картинки с чётко заданным width='' и height='' ?
Спустя 12 минут, 3 секунды (20.02.2011 - 21:39) Winston написал(а):
Оно ?
preg_match_all('#<img\s+src\s*=\s*(\'|")(.*?)\\1\s+width=\\1[0-9]+\\1\s+height=\\1[0-9]+\\1\s*?>#i', $res, $matches);
Спустя 9 минут, 59 секунд (20.02.2011 - 21:49) RCuPeR написал(а):
http://www.google.com/i/delicious_small.gif" border="0
B как задать точные параметры ?
[0-9] тут заменить на [789] ?
Спустя 1 минута, 28 секунд (20.02.2011 - 21:50) Winston написал(а):
Цитата (RCuPeR @ 20.02.2011 - 20:49) |
[0-9] тут заменить на [789] ? |
Да.
Спустя 7 минут, 14 секунд (20.02.2011 - 21:57) RCuPeR написал(а):
А как тег border="0" убрать ?!
Спустя 3 минуты, 2 секунды (20.02.2011 - 22:00) Winston написал(а):
Цитата (RCuPeR @ 20.02.2011 - 20:57) |
А как тег border="0" убрать ?! |
То есть чтобы он не имел значения ? Присутствует или нет ?
Спустя 2 минуты, 35 секунд (20.02.2011 - 22:03) RCuPeR написал(а):
http://www.google.com/i/delicious_small.gif" border="0
Ну такой же ссылочка не может быть ?!
Спустя 13 минут, 4 секунды (20.02.2011 - 22:16) Winston написал(а):
Пробуй так:
preg_match_all('#<img\s+src\s*=\s*(\'|")([^$1]+)\\1\s+width=\\1[0-9]+\\1\s+height=\\1[0-9]+\\1\s*?>#i', $res, $mt);
Спустя 5 минут, 22 секунды (20.02.2011 - 22:21) jogal написал(а):
preg_match_all('#<img(.*?)src\s*=\s*(\'|")(.*?)(\'|")#ims', $res, $m);
print_r($m[3]);
Спустя 2 минуты, 35 секунд (20.02.2011 - 22:24) DedMorozzz написал(а):
<img\s*src не подходит, ибо после тега ИМГ может стоять, к примеру - высота. \s заменить на .*?
(.*?)\s* - а это что? Поясни что это такое и что должна эта конструкция делать.
(.*?)\s* - а это что? Поясни что это такое и что должна эта конструкция делать.
Спустя 3 минуты, 49 секунд (20.02.2011 - 22:28) RCuPeR написал(а):
Странно, чёт вообще ничего не выгребает =(
jogal, твоя регулярка хороша, только добавь пожалуйста заданные параметры для ширины и высоты ?!
jogal, твоя регулярка хороша, только добавь пожалуйста заданные параметры для ширины и высоты ?!
Спустя 24 секунды (20.02.2011 - 22:28) Winston написал(а):
Цитата (DedMorozzz @ 20.02.2011 - 21:24) |
<img\s*src не подходит, ибо после тега ИМГ может стоять, к примеру - высота. |
Нефиг писать свойства сразу после img и будет счастье.
Спустя 1 минута, 22 секунды (20.02.2011 - 22:30) jogal написал(а):
Цитата (RCuPeR @ 20.02.2011 - 19:28) |
Странно, чёт вообще ничего не выгребает =( jogal, твоя регулярка хороша, только добавь пожалуйста заданные параметры для ширины и высоты ?! |
Поправил
Спустя 27 секунд (20.02.2011 - 22:30) DedMorozzz написал(а):
PHPprogramer, с чего это? Это валидно, а значит легально.
Спустя 1 минута, 14 секунд (20.02.2011 - 22:31) RCuPeR написал(а):
jogal , если не серкет, где ты поправил ?
Спустя 44 секунды (20.02.2011 - 22:32) Winston написал(а):
Цитата (RCuPeR @ 20.02.2011 - 21:28) |
Странно, чёт вообще ничего не выгребает =( |
Последнюю регулярку которую я дал тестил на такой строке
Цитата |
$res = "<img src='http://phpforum.ru' width='10' height='20'> <img src='http://google.ru&xxx' width='10' height='20'>"; |
У меня все работает. А у тебя не работает наверное из-за border'a
Спустя 2 минуты, 5 секунд (20.02.2011 - 22:34) jogal написал(а):
Цитата (RCuPeR @ 20.02.2011 - 19:31) |
jogal , если не серкет, где ты поправил ? :D |
preg_match_all('#<img(.*?)src\s*=\s*(\'|")(.*?)(\'|")#ims', $res, $m);
print_r($m[3]);
В посте предыдущем поправил
Спустя 1 минута, 59 секунд (20.02.2011 - 22:36) RCuPeR написал(а):
Так, ребята, я чёт вообще запутался !
Давайте так: мне нужна регулярка, которая вытаскивает ссылку на картинку с шириной 100 и высотой 50, к примеру.
Вот последний пример jogal в точку, но вытаскивает ВСЕ картики, фильтрации по размерам нету =(
jogal, он же не фильтрует по размерам.
Давайте так: мне нужна регулярка, которая вытаскивает ссылку на картинку с шириной 100 и высотой 50, к примеру.
Вот последний пример jogal в точку, но вытаскивает ВСЕ картики, фильтрации по размерам нету =(
jogal, он же не фильтрует по размерам.
Спустя 2 минуты, 17 секунд (20.02.2011 - 22:38) Winston написал(а):
Тогда так?
preg_match_all('#<img(?:\s+?.*)?\s+?src\s*=\s*(\'|")([^$1]+)\\1(?:\s+?.*)?\s*?>#i', $res, $mt);
Спустя 2 минуты, 35 секунд (20.02.2011 - 22:41) Winston написал(а):
Тогда нужно писать извратную регулярку, чтобы ещё и не учитывала где параметры прописаны до src или после
Спустя 2 минуты, 52 секунды (20.02.2011 - 22:44) RCuPeR написал(а):
Вот блин, только щас заметил, что размер в <img> не задан, всё через css =(
Блин, как тогда быть ?! Забить на картинки ?!
Блин, как тогда быть ?! Забить на картинки ?!
Спустя 9 минут, 1 секунда (20.02.2011 - 22:53) jogal написал(а):
Цитата (RCuPeR @ 20.02.2011 - 19:44) |
Вот блин, только щас заметил, что размер в <img> не задан, всё через css =( Блин, как тогда быть ?! Забить на картинки ?! |
Нужно сначало указывать что хочешь, ато только вконце 3й страници топика выяснилось что нужны заданные размеры да еще и через css
Спустя 2 минуты, 3 секунды (20.02.2011 - 22:55) RCuPeR написал(а):
Да не, это я сам немного затупил. Извиняюсь за мозгое*изм.
Спустя 3 минуты, 38 секунд (20.02.2011 - 22:58) Winston написал(а):
RCuPeR
Как у тебя будут выглядеть теги картинок. Строго определенные то есть сначала её адрес потом параметры? Или каждый тег будет разным ?
Например
<img src='http://google.ru&xxx' width='10' height='20'>
Или
<img height='20' src='http://google.ru&xxx' width='10' border='0'>
?
Как у тебя будут выглядеть теги картинок. Строго определенные то есть сначала её адрес потом параметры? Или каждый тег будет разным ?
Например
<img src='http://google.ru&xxx' width='10' height='20'>
Или
<img height='20' src='http://google.ru&xxx' width='10' border='0'>
?
Спустя 9 минут, 39 секунд (20.02.2011 - 23:08) Winston написал(а):
Если теги с определенными параметрами будут такие
<img src='http://google.ru?xxx' width='12' height='10'>
или
<img src='http://yandex.ru?test=help' width='102' height='500'>
То вот эта регулярка тебе поможет
<img src='http://google.ru?xxx' width='12' height='10'>
или
<img src='http://yandex.ru?test=help' width='102' height='500'>
То вот эта регулярка тебе поможет
preg_match_all('#<img\s+src\s*=\s*(\'|")([^$1]+)\\1\s+width=\\1[0-9]+\\1\s+height=\\1[0-9]+\\1\s*?>#i', $res, $mt);
Спустя 12 минут, 45 секунд (20.02.2011 - 23:21) RCuPeR написал(а):
Спасибо большое, возьму регулярку на заметку!
Спустя 19 минут, 57 секунд (20.02.2011 - 23:41) RCuPeR написал(а):
Аааа!!! Не выгребает эта регулярка !
Вот допустим картинка. Вот регулярка :
В результате - белый экран !
<img src="http://bedifferent.com.ua/components/com_virtuemart/show_image_in_imgtag.php?filenam e=_________________4a342db2515a5.gif&newxsize=150&newysize=150&fileout=" height="113" width="150" alt="Наклейки на кухню" border="0">
Вот допустим картинка. Вот регулярка :
preg_match_all('#<img\s+src\s*=\s*(\'|")([^$1]+)\\1\s+height=\\1[113]+\\1\s+width=\\1[150]+\\1\s*?>#i', $res, $mt);
print_r($m[3]);
В результате - белый экран !
Спустя 47 минут, 9 секунд (21.02.2011 - 00:28) inpost написал(а):
$m[3] ??? Что за $m ? Ткни пальцем, откуда она взялась.
Спустя 3 минуты, 6 секунд (21.02.2011 - 00:31) RCuPeR написал(а):
Исправил на $mt[3] - всё тоже. Что не так ?!
ПЫСЫ: Давно ты меня не ругал =))
ПЫСЫ: Давно ты меня не ругал =))
Спустя 5 минут, 42 секунды (21.02.2011 - 00:37) RCuPeR написал(а):
print_r($mt);
Возвращает
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
Спустя 47 минут, 55 секунд (21.02.2011 - 01:25) inpost написал(а):
<img.*?> - вот и всё, добавь в точку ещё пробел через модификатор - будут тебе все картинки.
Спустя 17 минут, 13 секунд (21.02.2011 - 01:42) RCuPeR написал(а):
%) Да в том-то и дело, что все мне не нужны. Мне нужны только те у которых ширина=150, а высота=100.
Спустя 20 минут, 49 секунд (21.02.2011 - 02:03) inpost написал(а):
RCuPeR
получишь все картинки в массив, а после перебор массива: foreach, по аналогии с проверкой почты, делаешь проверку на width="150" height="100" , можешь 2 отдельных проверки, можешь общую, в чём дело? Не удовлетворил твоим потребностям найденная картинка - удалил из массива!
получишь все картинки в массив, а после перебор массива: foreach, по аналогии с проверкой почты, делаешь проверку на width="150" height="100" , можешь 2 отдельных проверки, можешь общую, в чём дело? Не удовлетворил твоим потребностям найденная картинка - удалил из массива!
_____________
Гнусный социопат с комплексом Бога.