Проверьте, существует ли слово в теге img alt

Я искал подобный скрипт, но пока не смог найти совпадений.

Я знаю, что вы, ребята, здесь, подумайте из коробки, поэтому я вас спрашиваю.

Я хочу (с PHP) проверить, если мой теги в строке содержат определенное слово в своем теге alt. Например, если я ищу слово драгоценный камень и моя строка:

I have a gem <img src="whatever.jpg" alt="This is my gem"> ye well it is.

Это должно только сказать мне, что у меня есть настоящее совпадение, потому что гем находится в моем теге alt и, следовательно, совпадение. Ложное совпадение будет:

 I have a gem <img src="whatever.jpg" alt="This is my gems"> ye well it is.

Потому что я ищу слово gem в теге alt.
Надеюсь, кто-нибудь может мне помочь.

1

Решение

Разработать Предложение призрака в комментариях вы можете решить свою проблему, используя DOMDocument учебный класс:

$dom = new DOMDocument();
$dom->loadHTML('I have a gem <img src="whatever.jpg" alt="This is my gem"> ye well it is.');
foreach ($dom->getElementsByTagName('img') as $img) {
$alt = $img->getAttribute('alt');
if (preg_match('/\bgem\b/', $alt)) {
echo "matched: $alt";
}
}

Это анализирует строку как HTML и проходит через каждый из <img> элементы. Использует регулярное выражение с границами слова \b чтобы соответствовать вхождению слова «драгоценный камень».

Выход:

This is my gem
1

Другие решения

Я понял что-то вроде

preg_match_all('/<img.*?alt="(.*?)".*>/',$row[content], $match);

Вероятно, будет работать, но когда я пытаюсь распечатать $ match [1], я получаю только текст «массив»

1

Попытайся:

$ var_string = ваш HTML-код IMG;

if (strpos($var_string,'gem') !== false) {
echo 'true';
}
0