1.   本网站所有源码包解压密码:www.youhutong.com
会员登录  帮助问答

PHP正则,删除 编辑文章内容中多余的图片!

小川 PHP

1.删除、编辑文章时,一起删除多余图片的方法函数:

1.定义三个公共函数:

/**
 * 获取字符串中包含的所有图片
 * author: xiaochuan
 * @param  $data      数据
 * @return array  
 */
function get_content_img($data='')
{
    $preg="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
    preg_match_all($preg,$data,$obj);
    return $obj[1];
}

/**
 * 文章删除时 -(删除内容中的图片)
 * author: xiaochuan
 * @param  $data      数据
 * @return array  
 */
function del_content_img($data='')
{
    $preg="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
    preg_match_all($preg,$data,$obj);
    if(!empty($obj)){
        foreach ($obj[1] as $k => $v) {
            //注意:如果SRC带网址:要先str_replace
            //$v = str_replace('你的网址','',$v);
            unlink(FCPATH.$v);
        }
    }
}

/**
 * 文章编辑时 -(删除内容多余的图片)
 * author: xiaochuan
 * @param  $arr1      旧数据
 * @param  $arr2      新数据
 * @return array  
 */
function act_content_img($arr1='' , $arr2='')
{
    $arr1 = get_content_img($arr1);
    $arr2 = get_content_img($arr2);
    $actdata = array_diff($arr1, $arr2);
    if(!empty($actdata)){
        foreach ($actdata as $k => $v) {
            //注意:如果SRC带网址:要先str_replace
            //$v = str_replace('你的网址','',$v);
            unlink(FCPATH.$v);
        }
    }
}


2.使用:

//删除时调用:del_content_img(文章内容);
del_content_img($data['content']);

//编辑时调用:act_content_img(旧文章内容,新文章内容);
act_content_img($arr1['content'],$arr2['content']);


如果你觉得这篇教程的内容对你有帮助、请支持本站谢谢!  点击进入捐赠通道

转载请注明来源地址:小川编程 » http://www.youhutong.com/index.php/article/index/60.html

( 0 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情