源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-07-27 08:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php笔记之:文章中图片处理的使用
[b]array_diff($arr1,$arr2) [/b]php数组函数之一,用来计算数组的差集. 正则匹配html图片标签 用sinaeditor添加的图片删除操作 用法之一,今天晚上在用新浪编辑器发表文章的过程中. 使用到了此函数 [b]问题描述:[/b] 文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中 在修改文章的过程中如果对图片进行相关的删除操作.那么虽然在代码中(已经存入数据库); 已经删除了数据的标签.类似于<img src=http://......>这样的标签.但是图片的文件依旧存在于 网站上.这时候需要一定的处理 [b]处理办法:[/b] [b]首先:从数据库中得到原始的文章内容 [/b]从里面得到图片的文件名 用到了正则 [b]方法如下 [/b]
[u]复制代码[/u] 代码如下:
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求差集方法如下 --也就是说如果原始数据中的图片不存在于用户新提交的内容中.那么将删除这个图片.
[u]复制代码[/u] 代码如下:
$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);      }     }    }
[b]删除图片的方法如下 很简单. [/b]
[u]复制代码[/u] 代码如下:
 public function delimg($imgname,$dir)  {   @unlink($dir.'/'.$imgname);   return true;  }
这样我的目的就达到了.当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除 得到文章中的图片名称的方法还可以应用到删除文章的过程中. 在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录 对于得到html中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错 精通正则表达式第三版  Jeffrey E.F. Friedl著 ,余晟(cheng)译
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部