检查 img alt 标签中是否存在单词
Check if word exists in img alt tag
我一直在四处寻找这样的脚本,但还没有找到任何匹配项。
我知道你们在座,跳出框框思考,所以我问你们。
我想(使用 PHP)检查字符串中的 标签是否在其 alt 标签中包含特定单词。例如,如果我正在寻找 gem 这个词,而我的字符串是:
I have a gem <img src="whatever.jpg" alt="This is my gem"> ye well it is.
它应该只告诉我我有一个真正的匹配项,因为 gem 在我的 alt 标签中,因此是一个匹配项。错误匹配将是:
I have a gem <img src="whatever.jpg" alt="This is my gems"> ye well it is.
因为我要在 alt 标签中查找 gem 这个词。
希望有人能帮帮我。
试一试:
$var_string = your html img code;
if (strpos($var_string,'gem') !== false) {
echo 'true';
}
为了在评论中详细说明 ,您可以使用以下方法解决您的问题 DOMDocument
class:
$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
的正则表达式来匹配出现的单词 "gem".
输出:
This is my gem
我想到了
preg_match_all('/<img.*?alt="(.*?)".*>/',$row[content], $match);
可能会奏效,但是当我尝试打印 $match[1] 时,我只得到文本 "array"
我一直在四处寻找这样的脚本,但还没有找到任何匹配项。
我知道你们在座,跳出框框思考,所以我问你们。
我想(使用 PHP)检查字符串中的 标签是否在其 alt 标签中包含特定单词。例如,如果我正在寻找 gem 这个词,而我的字符串是:
I have a gem <img src="whatever.jpg" alt="This is my gem"> ye well it is.
它应该只告诉我我有一个真正的匹配项,因为 gem 在我的 alt 标签中,因此是一个匹配项。错误匹配将是:
I have a gem <img src="whatever.jpg" alt="This is my gems"> ye well it is.
因为我要在 alt 标签中查找 gem 这个词。 希望有人能帮帮我。
试一试:
$var_string = your html img code;
if (strpos($var_string,'gem') !== false) {
echo 'true';
}
为了在评论中详细说明 DOMDocument
class:
$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
的正则表达式来匹配出现的单词 "gem".
输出:
This is my gem
我想到了
preg_match_all('/<img.*?alt="(.*?)".*>/',$row[content], $match);
可能会奏效,但是当我尝试打印 $match[1] 时,我只得到文本 "array"