检查img alt标签中是否存在单词

时间:2015-03-17 11:51:38

标签: php image tags match alt

我一直在寻找像这样的剧本,但还没有找到任何匹配。

我知道你们在这里,开箱即用,所以我问你。

我希望(使用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。 希望有人可以帮助我。

3 个答案:

答案 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';
}