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)