Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Регулярное выражение для картинки


Автор: Blaga 19.2.2013, 13:01
Всем привет помогите с регуляркой. делаю парсер картинок из вк групп там при получении страницы такой код:
HTML
<div class="wall_text"><a class="author" href="http://vk.com/mudakoff">MDK</a> <div id="wpt-10639516_13898400"><div class="page_post_queue_wide"><div class="page_post_sized_thumbs  clear_fix" style="width: 537px; height: 309px;"><a onclick="return showPhoto('-10639516_298255289', 'wall-10639516_13898400', {temp:{base:&quot;http://cs14101.userapi.com/c7006/v7006252/&quot;,x_:[&quot;9ee/GSkpfq7xD8w&quot;,604,348]}}, event)" style="width: 537px; height: 309px;" class="page_post_thumb_wrap  page_post_thumb_last_column page_post_thumb_last_row"><img src="mudakoff_files/GSkpfq7xD8w.jpg" style="" class="page_post_thumb_sized_photo" height="309" width="537"></a></div></div>
<div class="page_post_queue_narrow"><div class="page_post_sized_thumbs  clear_fix" style="width: 337px; height: 194px;"><a onclick="return showPhoto('-10639516_298255289', 'wall-10639516_13898400', {temp:{base:&quot;http://cs14101.userapi.com/c7006/v7006252/&quot;,x_:[&quot;9ee/GSkpfq7xD8w&quot;,604,348]}}, event)" style="width: 337px; height: 194px;" class="page_post_thumb_wrap  page_post_thumb_last_column page_post_thumb_last_row"><img src="mudakoff_files/GSkpfq7xD8w.jpg" style="" class="page_post_thumb_sized_photo" height="194" width="337"></a></div></div></div></div>


из него надо выдрать и склеить ссылку на картинку
HTML
{base:&quot;http://cs14101.userapi.com/c7006/v7006252/&quot;,x_:[&quot;9ee/GSkpfq7xD8w&quot;,604,348]}

станет

Автор: Aliance 19.2.2013, 13:12
Ну а расскажи, как пытался сделать сам и что не получилось?

Автор: patap 19.2.2013, 13:15
Код

preg_match_all('#\{base:.+?(http://[^&]+)[^/]+/([^&]+)#', $content, $matches);

Автор: Blaga 19.2.2013, 13:19
С этой регуляркой я даже не пытался ничего сделать. Для меня это слишком сложно. я могу выдрать сделать более тривиальные задачи с ними но тут... кроме как к http:// не знаю к чему привязаться...

Автор: Aliance 19.2.2013, 13:25
По-моему лучше уж тогда вырезать все между { и } а потом с помощью json_decode иметь приятный объект.

Автор: Blaga 19.2.2013, 13:26
patap, очень помогло, но у меня показывает пол пути http://cs14101.userapi.com/c7006/v7006252/ и не показывает после 
Код

&quot;,x_:[&quot;
 а там еще 9ee/GSkpfq7xD8w 
я постараюсь допилить, но и за помощь буду благодарен. smile

Автор: patap 19.2.2013, 13:39
ты дамп массыва $matches смотрел?
Код

Array
(
    [0] => Array
        (
            [0] => {base:&quot;http://cs14101.userapi.com/c7006/v7006252/&quot;,x_:[&quot;9ee/GSkpfq7xD8w
            [1] => {base:&quot;http://cs14101.userapi.com/c7006/v7006252/&quot;,x_:[&quot;9ee/GSkpfq7xD8w
        )

    [1] => Array
        (
            [0] => http://cs14101.userapi.com/c7006/v7006252/
            [1] => http://cs14101.userapi.com/c7006/v7006252/
        )

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

)

Автор: Blaga 19.2.2013, 13:59
patap, я затупил. по другому выводил... 
Спасибо. Дальше сам допилю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)