加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php笔记之文章中图片处理的用法

发布时间:2022-07-10 10:04:32 所属栏目:PHP教程 来源:互联网
导读:array_diff($arr1,$arr2) php数组函数之一,用来计算数组的差集. 正则匹配html图片标签 用sinaeditor添加的图片删除操作 用法之一,今天晚上在用新浪编辑器发表文章的过程中. 使用到了此函数 问题描述: 文章中有图片若干.在增加文章的过程中自动上传到网站的图
  array_diff($arr1,$arr2)
  php数组函数之一,用来计算数组的差集.
  正则匹配html图片标签
  用sinaeditor添加的图片删除操作
  用法之一,今天晚上在用新浪编辑器发表文章的过程中.
  使用到了此函数
 
  问题描述:
 
  文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中
  在修改文章的过程中如果对图片进行相关的删除操作.那么虽然在代码中(已经存入数据库);
  已经删除了数据的标签.类似于<img src=http://......>这样的标签.但是图片的文件依旧存在于
  网站上.这时候需要一定的处理
 
  处理办法:
 
  首先:从数据库中得到原始的文章内容
  从里面得到图片的文件名
  用到了正则
 
  方法如下
 
  复制代码 代码如下:www.CuoXIn.com
 
  public function getimgsinarticle($content)
  {
  $temp = array();
  $imgs = array();
  preg_match_all('/http[^/d]*[/d]+[/.](jpg|gif|png)/',$content,$temp);
  $temp = $temp[0];
  if(!empty($temp[0]))
  {
  for($i=0;$i<count($temp);$i++)
  {
  $imgs[$i] = pathinfo($temp[$i]);
  $imgs[$i] = $imgs[$i]['basename'];
  }
  return $imgs;
  }
  else
  {
  return false;
  }
  }
 
  对正则进行下解释,先匹配http四个字母然后匹配非数字的字符若干个.匹配数字字符至
  少一个,匹配点(.)一个,匹配以jpg或gif或png结尾从$congtent中查找.结果存入$temp中.
  将数据库中的原始数据中的图片保存在数组中.命名为$oldimgs
  这个地方我觉得应该改进下,存入后打印出来是二维数组.用起来有点费事
  注:我的图片名称是类似于这个样子命名的:"201111291322589013.jpg"
  第二步:
  从用户提交过来的内容中找到所有的图片方法如上.得到数组二命名为$newimgs
  对arr1和arr2求差集方法如下
  --也就是说如果原始数据中的图片不存在于用户新提交的内容中.那么将删除这个图片.
 
  复制代码 代码如下:www.CuoXIn.com
 
  $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=0;$i<count($diff);$i++)
  {
  $this->delimg($diff[$i],ARTICLE_IMG_DIR);
  }
  }
  }
 
  删除图片的方法如下 很简单.
  复制代码 代码如下:www.CuoXIn.com
 
  public function delimg($imgname,$dir)
  {
  @unlink($dir.'/'.$imgname);
  return true;
  }
 
  这样我的目的就达到了.当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除
  得到文章中的图片名称的方法还可以应用到删除文章的过程中.
 
  在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录
  对于得到html中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错。

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!