php笔记之:文章中图片处理的使用
发布时间:2020-12-13 06:16:08 所属栏目:PHP教程 来源:网络整理
导读:array_diff($arr1,$arr2) php数组函数之一,用来计算数组的差集. 正则匹配html图片标签 用sinaeditor添加的图片删除操作 用法之一,今天晚上在用新浪编辑器发表文章的过程中. 使用到了此函数 问题描述: 文章中有图片若干.在增加文章的过程中自动上传到网站的图
array_diff($arr1,$arr2)php数组函数之一,用来计算数组的差集.正则匹配html图片标签 用sinaeditor添加的图片删除操作 用法之一,今天晚上在用新浪编辑器发表文章的过程中. 使用到了此函数 问题描述:文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中
处理办法:首先:从数据库中得到原始的文章内容从里面得到图片的文件名用到了正则 方法如下 代码如下: 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 $imgs[$i] = pathinfo($temp[$i]); $imgs[$i] = $imgs[$i]['basename']; } return $imgs; } else { return false; } } 对正则进行下解释,先匹配http四个字母然后匹配非数字的字符若干个.匹配数字字符至 少一个,匹配点(.)一个,匹配以jpg或gif或png结尾从$congtent中查找.结果存入$temp中. 将数据库中的原始数据中的图片保存在数组中.命名为$oldimgs 这个地方我觉得应该改进下,存入后打印出来是二维数组.用起来有点费事 注:我的图片名称是类似于这个样子命名的:"201111291322589013.jpg" 第二步: 代码如下: $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 $this->delimg($diff[$i],ARTICLE_IMG_DIR); } } } 删除图片的方法如下 很简单. 代码如下: public function delimg($imgname,$dir) { @unlink($dir.'/'.$imgname); return true; } 这样我的目的就达到了.当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除 得到文章中的图片名称的方法还可以应用到删除文章的过程中.在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录 对于得到html中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错 精通正则表达式第三版 Jeffrey E.F. Friedl著,余晟(cheng)译 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |