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

发布时间:2019-10-12

仿站网>问答 > [求助]如何防止图片多个alt和title?请会的指点!谢谢
想给图片加入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程序疑难杂症!
  • 首页
  • 客服
  • 头部