我一直在寻找像这样的剧本,但还没有找到任何匹配。
我知道你们在这里,开箱即用,所以我问你。
我希望(使用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。 希望有人可以帮助我。
答案 0 :(得分:1)
要在评论中详细说明Ghost's suggestion,您可以使用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
的正则表达式来匹配单词&#34; gem&#34;的出现。
输出:
This is my gem
答案 1 :(得分:1)
我想出了像
这样的东西preg_match_all('/<img.*?alt="(.*?)".*>/',$row[content], $match);
可能会有效,但是当我尝试打印出$ match [1]时,我只得到文本“array”
答案 2 :(得分:0)
试一试:
$ var_string =你的html img代码;
if (strpos($var_string,'gem') !== false) {
echo 'true';
}