array_diff($arr $arr )
php数组函数之一 用来计算数组的差集 正则匹配图片标签 用sinaeditor添加的图片删除操作 用法之一 今天晚上在用新浪编辑器发表文章的过程中 使用到了此函数
问题描述:
文章中有图片若干 在增加文章的过程中自动上传到网站的图片目录中 在修改文章的过程中如果对图片进行相关的删除操作 那么虽然在代码中(已经存入数据库); 已经删除了数据的标签 类似于这样的标签 但是图片的文件依旧存在于 网站上 这时候需要一定的处理
处理办法:
首先:从数据库中得到原始的文章内容 从里面得到图片的文件名 用到了正则
方法如下
代码如下: public function getimgsinarticle($content) { $temp = array(); $imgs = array(); preg_match_all( /[^d]*[d]+[ ](jpg|gif|png)/ $content $temp); $temp = $temp[ ]; if(!empty($temp[ ])) { for($i= ;$i第二步: 从用户提交过来的内容中找到所有的图片方法如上 得到数组二命名为$newimgs 对arr 和arr 求差集方法如下 也就是说如果原始数据中的图片不存在于用户新提交的内容中 那么将删除这个图片
代码如下: $oldimgs = $this >getimgsinarticle($oldarticledata[ article_content ]); $newimgs = $this >getimgsinarticle($data[ articlecontent ]); //print_r($newimgs); $newimgs = empty($newimgs)?array():$newimgs; if($oldimgs!=false) { $diff = array_diff($oldimgs $newimgs); $diff = array_values($diff); if(!empty($diff)) { for($i= ;$i删除图片的方法如下 很简单
代码如下: public function delimg($imgname $dir) { @unlink($dir / $imgname); return true; } lishixinzhi/Article/program/PHP/201311/21206