php文章中图片处理的使用

2026年09月26日 18:29
有1个网友回答
网友(1):

   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    对正则进行下解释 先匹配四个字母然后匹配非数字的字符若干个 匹配数字字符至 少一个 匹配点( )一个 匹配以jpg或gif或png结尾从$congtent中查找 结果存入$temp中 将数据库中的原始数据中的图片保存在数组中 命名为$oldimgs 这个地方我觉得应该改进下 存入后打印出来是二维数组 用起来有点费事 注:我的图片名称是类似于这个样子命名的:" jpg"

  第二步: 从用户提交过来的内容中找到所有的图片方法如上 得到数组二命名为$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= ;$idelimg($diff[$i] ARTICLE_IMG_DIR); } } }

   删除图片的方法如下 很简单

代码如下: public function delimg($imgname $dir) { @unlink($dir / $imgname); return true; } lishixinzhi/Article/program/PHP/201311/21206