帝国cms教程:Ecms发布信息时替换正文IMG图片标签里的ALT内容

系统分类:代码 - 代码 - 帝国cms教程 yecha 2016-09-01 00:31:42 上传

版权信息: "帝国cms教程"栏目内,站内会员所分享的全部资料,仅供学习与参考,版权为原作者所有。
yecha加关注
江苏省淮安市 / 设计师
标签:发布信息   替换正文   IMG图片   标签   ALT

在 e/class/userfun.php 里面增加

//替换正文IMG里的ALT内容
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); 
		$t_alt=count($altimg[0]);
		if($t_alt==0){
			$htmls=str_replace("<img","<img alt=\"{$title}\"",$htmls);
		}
	}   
		return $htmls;
}

然后在后台系统设置-数据表模型-字段管理里面 编辑 newstext字段

增加如下

Ecms发布信息时替换正文IMG图片标签里的ALT内容

即可,图片上的alt就自动被替换成了文章标题 适合seo!


下面是改进代码 防止多个alt

//替换正文IMG里的ALT内容
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); 
        $t_alt=count($altimg[0]);
        if($t_alt==0){
            //$htmls=str_replace("<img","<img alt=\"{$title}\"",$htmls);
            $htmls=str_replace('/<img.+?src=\"(.+?)\".+?>/','<img src="\1" alt="{$title}">',$htmls);
        }
    }   
        return $htmls;
}


素材人气
  • 浏览:
  • 收藏:
  • 评论:
  • 推荐:
  • 附件下载:
yecha
江苏省淮安市 / 设计师
2016-09-01 00:31:42发布
全部评论()
全部推荐()