2015-08-22 2 views
1

У меня есть следующий HTML:Получение данных значение атрибута с помощью preg_match

<div class="video cover" data-thumb="https://i.vimeocdn.com/video/1234567.webp?mw=700&amp;mh=393" style="background-image: url(https://i.vimeocdn.com/video/525930392.webp?mw=700&amp;mh=393);"> 

Я хотел бы получить значение data-thumb URL.

Я попытался получить значение, используя следующее:

$iframe = '<div class="video cover" data-thumb="https://i.vimeocdn.com/video/1234567.webp?mw=700&amp;mh=393" style="background-image: url(https://i.vimeocdn.com/video/525930392.webp?mw=700&amp;mh=393);">'; 

preg_match('/data-thumb="(.*?)"/', $iframe, $matches); 

echo $matches[0]; 

Однако это не получение никаких совпадений.

EDIT: Благодарим за помощь и ответы. Кажется, я сделал ошибку с выходом $ iframe, который показывал контент из iframe (doh). Поэтому preg_match не может настроить таргетинг.

+0

Вы не можете отвечать на сообщения? – Dodo

+0

Да, нет совпадений. – user1444027

+0

Я принимаю его '$ iframe' - это строка, содержащая этот HTML-код? – Dodo

ответ

0

Попробуйте это регулярное выражение:

/data-thumb="[\s\S]*?"/ 
+0

Спасибо, но он не получил никаких совпадений – user1444027

+0

На самом деле ваше регулярное выражение и код хорошо работают на моей машине .... – Redoneben

+0

Должно быть 'data-thumb =" ([\ s \ S] *?) "' На самом деле получить матчи. –

0
preg_match('/data-thumb="([^"]*)"/', $iframe, $matches); 

if (isset($matches[1])) 
    echo $matches[1]; // echo the value of the data-thumb attribute 

Это работает для меня. И действительно, оригинальный код работает отлично.

+0

Оригинальное регулярное выражение работает и для меня. – Dodo