[求助]如何防止图片多个alt和title?请会的指点!谢谢

发布时间:2019-10-12 18:22:49

想给图片加入ALT和title,按如下代码可以实现,但是,如果再次刷新,或是更新图片已有ALT和title的文章,就会造成重复添加alt和title,如何避免循环重复添加,刷新只替换原有的值?function user_imgalt($mid,$f,$isadd,$isq,$value,...

您的位置:仿站网 > 问答 >
想给图片加入ALT和title,按如下代码可以实现,但是,如果再次刷新,或是更新图片已有ALT和title的文章,就会造成重复添加alt和title,如何避免循环重复添加,刷新只替换原有的值?

function user_imgalt($mid,$f,$isadd,$isq,$value,$cs){
$title=$_POST['title'];
$htmls=$value;
$pattern = "/<img[^>]+>/";
preg_match_all($pattern, $htmls, $matches);
for ($i=0; $i<=count($matches[0]); $i++) {
  preg_match_all("/alt=".+?"/",$matches[0][$i],$altimg);
  preg_match_all("/title=".+?"/",$matches[0][$i],$titleimg);
$t_alt=count($altimg[0]);
if($t_alt==0){
$htmls=str_replace("<img","<img alt="{$title}"",$htmls);
$htmls=str_replace("<img","<img title="{$title}"",$htmls);
}
}   
return $htmls;
}
回复列表
1.
4楼发的应该可以,加判断了
2.
原帖由 zhxin 于 2019-09-10 06:36:44 发表
4楼发的应该可以,加判断了

测试过,还是重复增加
3.
你这个是增加信息时,不是刷新时
4.
从新编辑文章在提交就会重复增加了
5.
function user_imgalt($mid,$f,$isadd,$isq,$value,$cs){
    $title=$_POST['title'];
    $htmls=$value;
    $pattern = "/<img[^>]+>/";
    preg_match_all($pattern, $htmls, $matches);
    for ($i=0; $i<=count($matches[0]); $i++) {
        preg_match("/alt=".+?"/",$matches[0][$i],$altimg);
        preg_match("/title=".+?"/",$matches[0][$i],$titleimg);
        if(!$altimg)$htmls=str_replace("<img","<img alt="{$title}"",$htmls);
        if(!$titleimg)$htmls=str_replace("<img","<img title="{$title}"",$htmls);
    }   
    return $htmls;
}

仿站网专注于帝国CMS仿站及二次开发、模板定制等各种有关帝国CMS程序疑难杂症!
Copyright@2016-2023 汇鑫网络工作室 版权所有 仿站网 www.ecmsw.cn
鲁ICP备17005488号-1 鲁公网安备 37018102000481号