2016-03-10 5 views
2

Это мой образНужна Regex Помощь (preg_match_all)

<img src="" data-original="'.$this->url.'/img/image'.$row['id'].'.jpg" id="song-art'.$row['id'].'" alt="'.$row['title'].'" class="animated fadeIn load-delay"> 

В PHP Мне нужно, чтобы получить содержание data-original, поэтому я попытался:

preg_match_all('/<img data-original="([\d\D]*)" id="song-art'.$_GET['id'].'".*">/iU', $track[0], $art); 

Я не очень хорошо с регулярным выражением , почему это не работает?

+1

Не используйте регулярное выражение для анализа HTML, используйте библиотеку разбора DOM. – Barmar

+0

@Barmar Спасибо, могу ли я увидеть это решение в качестве ответа? – NineCattoRules

+1

Это слишком сложно для меня, чтобы написать как ответ, тем более, что я не знаю вашего документа. Прочитайте, как использовать 'DOMDocument' и попытайтесь сделать это самостоятельно. – Barmar

ответ

3

Это регулярное выражение должно соответствовать всем внутри двойных кавычек, что это не двойная кавычка.

data-original=\"([^\"]*)\" 

EDIT: Для выбора данных-оригинал определенного исполнителя с идентификатором XXXX.

data-original=\"([^\"]*)\".*id=\"song-artXXXX\" 

так в PHP она должна быть:

$id_artist= 'XXXX'; 
preg_match_all('data-original=\"([^\"]*)\".*id=\"song-art'.$id_artist.'\"', ....); 

замените XXXX с идентификатором художника вы хотите искать, и добавить другие Params функции.

+0

Я пробовал это, но все еще не работает 'preg_match_all ('/ /iU', $ track [0], $ art);' – NineCattoRules

+0

Я не думаю, что вы правильно используете reg_match_all() ... почему вы добавьте это: id = "song-art". $ _ GET ['id']. '". *">/iU к шаблону? – spaniard

+0

Я использую это, чтобы выбрать правильное изображение (есть разные песни в стиле на той же странице) – NineCattoRules

Смежные вопросы