PHP не может взять тег <img> со страницы

У меня проблема с PHP preg_match функция.

В CMS DLE я пытаюсь извлечь картинку из новостей (image-x), но в модуле я имею в виду прямую ссылку.

//remove <p></p> tags
$row[$i]['short_story'] = str_replace( "</p><p>", " ",$row[$i]['short_story'] );

//remove the \" escapes (DLE put it in the MySQL column)
$row[$i]['short_story'] = str_replace("\\\"", " ", $row[$i]['short_story']);

//remove all tags except <img>, but there remains a simple text that is stored without tags
$row[$i]['img'] = strip_tags($row[$i]['short_story'], "<img>");

//try to find <img> (by '>'), to remove the simple text;
preg_match(".*>", $row[$i]['img'], $matches);

// print only <br/> (matches is empty)
print_r($matches."<br/>\n");

например print_r($row[$i]['img']) является

<img src="somelink" class="fr-fic" fr-dib="" alt=""> Some text

И мне нужно только

<img src="somelink" class="fr-fic" fr-dib="" alt="">

1 ответ

Ваш шаблон регулярного выражения для выбора <img> это неверно. использование /<img[^>]+>/ в шаблоне вместо. Код должен измениться на

preg_match("/<img[^>]+>/", $row[$i]['img'], $matches);

Также вы можете использовать preg_replace() удалить дополнительный текст после <img>

preg_replace("/(<img[^>]+>)[\w\s]+/", "$1", $string)
Другие вопросы по тегам