ホームページ >バックエンド開発 >PHPチュートリアル >PHP怎么匹配img标签外的数据并替换,img的数据不变

PHP怎么匹配img标签外的数据并替换,img的数据不变

WBOY
WBOYオリジナル
2016-06-06 20:20:451346ブラウズ

我在添加文章的时候,需要自动生成锚文本,关键词去匹配文章内容时,会匹配到img的alt和title值,图片会出现异常。
各位大神,帮我解决一下!谢谢了!

原来想要的是<p><img title="xxx" alt="PHP怎么匹配img标签外的数据并替换,img的数据不变" >这些文字加链接</p>
出错内容:<img title="<a href=" http: alt="PHP怎么匹配img标签外的数据并替换,img的数据不变" >xxx'/>

我的代码是这样写的:

<code>/**
 * 多关键词替换,每个替换一次
 * @param  Mixed $search   查找目标值
 * @param  Mixed $replace  替换值
 * @param  Mixed $subject  执行替换的字符串/数组
 * @param  Int   $limit    允许替换的次数,默认为-1,不限次数
 * @return Mixed
 */
function str_replace_limit($search, $replace, $subject, $limit=-1){
    if(is_array($search)){
        foreach($search as $k=>$v){
            $search[$k] = '`'. preg_quote($search[$k], '`'). '`';
        }
    }else{
        $search = '`'. preg_quote($search, '`'). '`';
    }
    return preg_replace($search, $replace, $subject, $limit);
}
foreach ($keylink as $k){
        $keyArray[] = $k->word;
        $url = '<a href="'.%24k->url.'" style="color:red;font-size:1.2em;">'.$k->word.'</a>';
        $replacement[] = $url;
}</code>

回复内容:

我在添加文章的时候,需要自动生成锚文本,关键词去匹配文章内容时,会匹配到img的alt和title值,图片会出现异常。
各位大神,帮我解决一下!谢谢了!

原来想要的是<p><img title="xxx" alt="PHP怎么匹配img标签外的数据并替换,img的数据不变" >这些文字加链接</p>
出错内容:<img title="<a href=" http: alt="PHP怎么匹配img标签外的数据并替换,img的数据不变" >xxx'/>

我的代码是这样写的:

<code>/**
 * 多关键词替换,每个替换一次
 * @param  Mixed $search   查找目标值
 * @param  Mixed $replace  替换值
 * @param  Mixed $subject  执行替换的字符串/数组
 * @param  Int   $limit    允许替换的次数,默认为-1,不限次数
 * @return Mixed
 */
function str_replace_limit($search, $replace, $subject, $limit=-1){
    if(is_array($search)){
        foreach($search as $k=>$v){
            $search[$k] = '`'. preg_quote($search[$k], '`'). '`';
        }
    }else{
        $search = '`'. preg_quote($search, '`'). '`';
    }
    return preg_replace($search, $replace, $subject, $limit);
}
foreach ($keylink as $k){
        $keyArray[] = $k->word;
        $url = '<a href="'.%24k->url.'" style="color:red;font-size:1.2em;">'.$k->word.'</a>';
        $replacement[] = $url;
}</code>

能看下代码不

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。