php笔记之:文章中图片处理的使用
2015-01-24信息快讯网
array_diff($arr1,$arr2)
php数组函数之一,用来计算数组的差集.
正则匹配html图片标签
用sinaeditor添加的图片删除操作
用法之一,今天晚上在用新浪编辑器发表文章的过程中.
使用到了此函数
问题描述:
文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中
在修改文章的过程中如果对图片进行相关的删除操作.那么虽然在代码中(已经存入数据库);
已经删除了数据的标签.类似于<img src=http://......>这样的标签.但是图片的文件依旧存在于
网站上.这时候需要一定的处理
处理办法:
首先:从数据库中得到原始的文章内容
从里面得到图片的文件名
用到了正则
方法如下
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求差集方法如下
--也就是说如果原始数据中的图片不存在于用户新提交的内容中.那么将删除这个图片.
$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); } } }
删除图片的方法如下 很简单.
public function delimg($imgname,$dir) { @unlink($dir.'/'.$imgname); return true; }
这样我的目的就达到了.当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除
得到文章中的图片名称的方法还可以应用到删除文章的过程中.
在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录
对于得到html中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错
精通正则表达式第三版 Jeffrey E.F. Friedl著 ,余晟(cheng)译
php+js实现图片的上传、裁剪、预览、提交示例
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
CodeIgniter上传图片成功的全部过程分享
php一些错误处理的方法与技巧总结
php读取图片内容并输出到浏览器的实现代码
解析php mysql 事务处理回滚操作(附实例)
浅析51个PHP处理字符串的函数
php图像处理函数大全(推荐收藏)
php对图像的各种处理函数代码小结
php采集文章中的图片获取替换到本地(实现代码)
php实现自动获取生成文章主题关键词功能的深入分析
php笔记之:有规律大文件的读取与写入的分析
php笔记之:初探PHPcms模块开发介绍
php实现多张图片上传加水印技巧
php检测图片木马多进制编程实践
PHP 自定义错误处理函数trigger_error()
PHP中图片等比缩放的实例
php页面消耗内存过大的处理办法
ajax取消挂起请求的处理方法
php文本转图片自动换行的方法
php添加文章时生成静态HTML文章的实现代码
php中使用preg_replace函数匹配图片并加上链接的方法
php中使用preg_match_all匹配文章中的图片
php处理文件的小例子(解压缩,删除目录)
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
php自动给文章加关键词链接的函数代码
PHP文章按日期(月日)SQL归档语句
php中长文章分页显示实现代码