首先, 看下php的数组去重函数。
array_diff($arr1,$arr2)
php数组函数之一,用来计算数组的差集.
正则匹配html图片标签
用sinaeditor添加的图片删除操作
在用新浪编辑器发表文章的过程中,使用到了此函数。
问题描述:
文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中,在修改文章的过程中如果对图片进行相关的删除操作。
那么,虽然在代码中(已经存入数据库);
已经删除了数据的标签.类似于<img src=http://......>这样的标签.但是图片的文件依旧存在于网站上,此时需要一定的处理。
处理办法:
首先:从数据库中得到原始的文章内容。
从里面得到图片的文件名。
用到了正则。
例子:
以上用到了正则表达式,解释下:先匹配http四个字母然后匹配非数字的字符若干个。
匹配数字字符至少一个,匹配点(.)一个,匹配以jpg或gif或png结尾从$congtent中查找。结果存入$temp中。
将数据库中的原始数据中的图片保存在数组中,命名为$oldimgs。
此处需要改进下,存入后打印出来是二维数组,用起来有点费事。
说明,我的图片名称是类似于这个样子命名的:"201111291322589013.jpg"
第二步:
从用户提交过来的内容中找到所有的图片方法如上.得到数组二命名为$newimgs
对arr1和arr2求差集方法如下
--也就是说如果原始数据中的图片不存在于用户新提交的内容中.那么将删除这个图片.
删除图片:
当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除,得到文章中的图片名称的方法还可以应用到删除文章的过程中。
在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录。