2016-12-08 6 views
-1

У меня есть строка с несколькими тегами изображения в ней. Как этоFnd конкретное место в строке и получить данные от него

<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg"> 

Я хочу найти ПЕРВОГО такого тега, и получить имя изображения из него 5844644f69fe7-64.jpg Как можно это сделать в PHP asuming есть много другого текст и теги в строке?

+0

Я голосую, чтобы закрыть этот вопрос не по теме, потому что не ясно ответил. Ответ не работает полностью. Закройте его. Я открыл другой с более простым вопросом. – David

ответ

1

Не используйте для этого регулярное выражение. Используйте парсер PHP DOM или альтернативу для извлечения тегов, а затем используйте функцию basename() PHP на элементе src, чтобы извлечь имя файла.

+0

Не то, чтобы это не сработало, но использование регулярных выражений отлично подходит для подмножеств HTML, вроде этого. – Iluvatar

4

Вы должны использовать то, что предложил @moopet. Это код, но, пожалуйста, отдать должное @moopet.

$str = '<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">'; 

$doc = new DOMDocument(); 
$doc->loadHTML($str); 

$first_img = $doc->getElementsByTagName("img")[0]; 
var_dump(basename($first_img->getAttribute('src'))); 
0

preg_match_all() Чтобы найти во всех случаях, а затем перейти к первому.

Пример:

<?php 
preg_match_all('/<\s*img[^<>]+?src\s*=\s*[\'\"][^<>\'\"]+?\/([^<>\'\"\/]\.jpg)/', $html, $matches, PREG_SET_ORDER); 
var_dump($matches[0]); 
?> 

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

  • Нет связанных вопросов^_^