[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярка
to0n1
никак не могу полностью освоить регулярки !

Ребят помогите если не сложно нужно сделать регулярку которая бы находила из элемента
<br><img width="625" height="469" id="obj_img" alt="Фотографии  ВАЗ 21083." src="http://images02.olx.ru/ui/11/84/99/1310560120_226857599_2--21083-.jpg" onclick="javascript:Slideshow.next('preview')">


нужно получать значение src

заранее спасибо !



Спустя 14 минут, 29 секунд (30.07.2011 - 16:01) Invis1ble написал(а):
Свернутый текст
$str = '<br><img width="625" height="469" id="obj_img" alt="Фотографии  ВАЗ 21083." src="http://images02.olx.ru/ui/11/84/99/1310560120_226857599_2--21083-.jpg" onclick="javascript:Slideshow.next(\'preview\')">';
preg_match_all('#<br><img width="625" height="469" id="obj_img" alt="Фотографии ВАЗ 21083\." src="(.*?)" onclick="javascript:Slideshow.next\(\'preview\'\)">#s', $str, $matches);
echo '<pre>'; print_r($matches); echo '</pre>';

Спустя 12 минут, 50 секунд (30.07.2011 - 16:14) to0n1 написал(а):
Спасибо огромное !! но вы меня не правильно наверное поняли sad.gif

есть код страницы в котором присутствуют теги

<br><img width="625" height="469" id="obj_img" alt="Фотографии ВАЗ 21083." src="http://images02.olx.ru/ui/11/84/99/1310560120_226857599_2--21083-.jpg" onclick="javascript:Slideshow.next('preview')">

я не знаю что будет находится в alt и в src

на выходе нужно получить только src ...

Сможете помоч ?? А то я никак не могу вдуплить в регулярки sad.gifъ

еще раз спасибо !!!


Спустя 3 минуты, 33 секунды (30.07.2011 - 16:18) jetistyum написал(а):
Ты бы сам попробовал, а тут бы тебе подсказали, исправили ошибки. Либо напиши что не хочешь вдуплять регулярки, и тебе нужно просто чтобы кто-то составил ее вместо тебя.

Спустя 3 минуты, 11 секунд (30.07.2011 - 16:21) Invis1ble написал(а):
to0n1
да, покажи свои мысли. Тут ничего сложного, детский сад.

Спустя 1 минута, 24 секунды (30.07.2011 - 16:22) to0n1 написал(а):
Чесно признаюсь обратился за тем что бы мне помогли именно кодом !! Сейчас нужна одна регулярка для выполнения задачи, а потратить время на изучения нужно не 1 час ...

я не думаю что кого то сильно напрягает написать 2 строки кода ! Во всяком случае есть именно те кто уже их написал за что им и респект !!!

А к регуляркам я сам вернусь и освою их !!! так как программеру без них никуда !

Спустя 1 минута, 24 секунды (30.07.2011 - 16:24) to0n1 написал(а):
preg_match_all('#<br><img width="625" height="469" id="obj_img" alt="(.*?)" src="(.*?)" onclick="javascript:Slideshow.next\(\'preview\'\)">#s', $str, $matches);

заменил значения алт но не помогло вот и вернулся на форум !!!

Спустя 5 минут, 58 секунд (30.07.2011 - 16:30) Invis1ble написал(а):
to0n1
Как это не помогло? Все правильно, только скобки можно убрать, тебе ведь не нужно значение alt получать

Спустя 4 минуты, 14 секунд (30.07.2011 - 16:34) jetistyum написал(а):
может у тебя и размеры картинки меняются ? а не только альт

Спустя 1 минута, 37 секунд (30.07.2011 - 16:36) Invis1ble написал(а):
Да и в дублирование id мне тоже слабо верится, хотя возможно...

Спустя 2 минуты, 26 секунд (30.07.2011 - 16:38) to0n1 написал(а):
Вот так и не работает sad.gif

вот допустим страница http://tambov.olx.ru/hyundai-getz-iid-233705931

там точно есть рисунок и в исходном коде есть <br><img ....
но ссылку не находит sad.gif

Спустя 21 минута, 55 секунд (30.07.2011 - 17:00) killer8080 написал(а):
Цитата (to0n1 @ 30.07.2011 - 16:38)
вот допустим страница http://tambov.olx.ru/hyundai-getz-iid-233705931

там точно есть рисунок и в исходном коде есть <br><img ....

что то я там ничего такого не вижу, может ссылка кривая?

Спустя 4 минуты, 29 секунд (30.07.2011 - 17:04) to0n1 написал(а):
http://tambov.olx.ru/2103-iid-224919867 любое авто для примера взять можно

Спустя 18 минут, 16 секунд (30.07.2011 - 17:23) killer8080 написал(а):
to0n1
нужна только картинка с id="obj_img"?

Спустя 12 секунд (30.07.2011 - 17:23) jetistyum написал(а):
<img onClick="javascript:Slideshow.next('preview')" src="http://images03.olx.ru/ui/11/05/67/1310125574_224919867_1----2103-.jpg" alt="Фотографии  Ваз 2103 на запчасти" id="obj_img" width="625" height="469" />


ну какбы, да, не получится той регуляркой вытянуть :)

Спустя 3 минуты, 29 секунд (30.07.2011 - 17:26) to0n1 написал(а):
Да
Цитата
нужна только картинка с id="obj_img"?


Вот и прошу помощи !!

Спустя 1 минута, 23 секунды (30.07.2011 - 17:28) jetistyum написал(а):
можно попробовать каким-нибудь html-dom парсером
http://simplehtmldom.sourceforge.net/
вот например. без регулярок, и не зависимо от порядка свойст хтмл -элементов

Спустя 20 минут, 39 секунд (30.07.2011 - 17:48) SerginhoLD написал(а):
смотри и проверяй

$m = '<img title="tit" id="obj_img" src="patch">';
echo htmlspecialchars($m).'<br><br>';

$pattern = '/\<img(.*)? src\=\"(.*)\"(.*)?\>/';

preg_match($pattern, $m, $s);

echo '<pre>';
print_r($s);
echo '</pre>';

Спустя 12 минут, 42 секунды (30.07.2011 - 18:01) jetistyum написал(а):
SerginhoLD
5 баллов .. он найдет у тебя первую попавшуюся картинку на странице )

Спустя 19 минут, 38 секунд (30.07.2011 - 18:21) SerginhoLD написал(а):
jetistyum он не писал что парсит всю страницу, так что туда теперь еще засунуть нужно ID, ума тут для этого много не надо, наверно догадается

Спустя 6 минут, 4 секунды (30.07.2011 - 18:27) killer8080 написал(а):
Мда в одну регулярку у меня не получилось, там прикол в том, что порядок атрибутов в теге может меняться, src может быть как перед id, так и после. Получилось вот так
Свернутый текст
$t = '
<br><img width="625" height="469" id="obj_img" alt="Фотографии ВАЗ 21083." src="http://images02.olx.ru/ui/11/84/99/1310560120_226857599_2--21083-.jpg" onclick="javascript:Slideshow.next(
\'preview\')">

<img id="spinner" src="http://static02.olx-st.com/images/spinner.gif" style="display:none;" />
<br />

<img onClick="javascript:Slideshow.next(
\'preview\')" src="http://images03.olx.ru/ui/11/05/67/1310125574_224919867_1----2103-.jpg" alt="Фотографии Ваз 2103 на запчасти" id="obj_img" width="625" height="469" />


<noscript>

'
;



preg_match_all('#<img[^>]+id="obj_img"[^>]*>#isU', $t, $m);

preg_match_all('#src="([^">]*)"#i', implode('', $m[0]), $m);

echo '<pre>', htmlspecialchars(print_r($m, 1)), '</pre>';
у кого получиться в одну регулярку, покажите как :rolleyes:

Спустя 36 минут, 5 секунд (30.07.2011 - 19:03) killer8080 написал(а):
а вот вариант с одной
$t = '
<br><img width="625" height="469" id="obj_img" alt="Фотографии ВАЗ 21083." src="http://images02.olx.ru/ui/11/84/99/1310560120_226857599_2--21083-.jpg" onclick="javascript:Slideshow.next(
\'preview\')">

<img id="spinner" src="http://static02.olx-st.com/images/spinner.gif" style="display:none;" />
<br />

<img onClick="javascript:Slideshow.next(
\'preview\')" src="http://images03.olx.ru/ui/11/05/67/1310125574_224919867_1----2103-.jpg" alt="Фотографии Ваз 2103 на запчасти" id="obj_img" width="625" height="469" />


<noscript>

'
;

preg_match_all('#<img[^>]+(?:id="obj_img"[^>]+src="([^">]*)"|src="([^&quo t;>]*)"[^>]+id="obj_img")[^>]*>#isU', $t, $m);

$m = array_filter(array_merge($m[1], $m[2]));

echo '<pre>', htmlspecialchars(print_r($m, 1)), '</pre>';


PS чё та форум регулярку по коверкал :rolleyes:

Спустя 1 день, 3 часа, 24 минуты, 47 секунд (31.07.2011 - 22:28) to0n1 написал(а):
с двумя регулярками шикарно ! а с одним чтото не так работает .... ну да ладно !!! огромное спасибо за помощ !!

Спустя 1 час, 21 минута, 16 секунд (31.07.2011 - 23:49) killer8080 написал(а):
to0n1
я ж говорил там форумный движок всё по коверкал, нужно так

'#<img[^>]+(?:id="obj_img"[^>]+src="([^">]*)"|src="([^ ">]*)"[^>]+id="obj_img")[^>]*>#isU'

Спустя 8 часов, 24 минуты, 58 секунд (1.08.2011 - 08:14) to0n1 написал(а):
Спасибо большое Вы мне очень помогли !!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.