Определить, есть ли в строке изображения

161
17 ноября 2017, 08:59

Здравствуйте. Есть переменная $text в которой находится текст в виде html содержимого. Вопрос: Как определить есть ли в нем изображение ( тег ) ?

Answer 1

Самое простое, что сразу приходит в голову - это написать что то вида

if (strpos($text, '<img') !== false) {
 ...
}

но это плохой способ. Данная подстрока может быть, но не являться тегом. Также тег может быть, но записан так '< img'.

Поэтому, самый надежный способ - это полноценно парсить. Где то так

$html = str_get_html($text);
// найдем все картинки
foreach($html->find('img') as $element) 
       echo $element->src . '<br>';
// найдем все ссылки
foreach($html->find('a') as $element) 
       echo $element->href . '<br>';

Есть правда ещё один случай - это когда картинка генерируется javascript'ом. Тут все немного сложнее. Но если сильно-сильно нужно, то можно использовать selenium+phantomjs. Настроить конечно будет немного сложновато, но работать будет достаточно надежно.

Answer 2

1 Вариант:

mb_substr_count // Возвращает количество вхождений подстроки
<?php echo 
   mb_substr_count("Это просто проверка", "то"); // выведет на экран 2
?>

т.е. если сделать так:

$count = mb_substr_count($text, '<img'); // получим количество вхождений img

Проверку думаю сами сможете сделать, типа:

if($count == 0){
   ...
}

2 Вариант:

if(strpos($text,'<img') !== false){
...
}

Выбирайте.

READ ALSO
Как получить нужное изображение

Как получить нужное изображение

ЗдравствуйтеПытаюсь парсером получить нужный контент

185
Выгрузка данных из PHP в Google Spreadsheet

Выгрузка данных из PHP в Google Spreadsheet

На сайте реализована выгрузка данных в CSVВ виде входящих данных многомерный массив

244
Как передать группу значений checkbox в форме?

Как передать группу значений checkbox в форме?

Есть форма с чекбоксами, которую передаю ее через Actions Google Scripts в гугл таблицуЕсли указываю один из нескольких вариантов, то все отрабатывает...

219
Создание товара через WC rest API

Создание товара через WC rest API

Добрый деньДелаю POST запрос на endpoint /wp-json/wc/v2/products/ с JSON описанием товара

175