展会信息港展会大全

php文章中图片处理的使用 android软件开发教程
来源:互联网   发布日期:2016-03-02 15:38:39   浏览:1022次  

导读:array_diff($arr1,$arr2)php数组函数之一,用来计算数组的差集.正则匹配html图片标签用sinaeditor添加的图片删除操作用法之一,今天晚上在用新浪编辑器发表...

array_diff($arr1,$arr2)

php数组函数之一,用来计算数组的差集.

正则匹配html图片标签

用sinaeditor添加的图片删除操作

用法之一,今天晚上在用新浪编辑器发表文章的过程中.

使用到了此函数

问题描述:

文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中

在修改文章的过程中如果对图片进行相关的删除操作.那么虽然在代码中(已经存入数据库);

已经删除了数据的标签.类似于<imgsrc=http://......>这样的标签.但是图片的文件依旧存在于

网站上.这时候需要一定的处理

处理办法:

首先:从数据库中得到原始的文章内容从里面得到图片的文件名

用到了正则

方法如下

代码如下:

public functiongetimgsinarticle($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

{

returnfalse;

}

}

对正则进行下解释,先匹配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 functiondelimg($imgname,$dir)

{

@unlink($dir.'/'.$imgname);

returntrue;

}

这样我的目的就达到了.当用户编辑了带有图片的文章.如果删除了图片.那么相应的图片也会从网站上删除

得到文章中的图片名称的方法还可以应用到删除文章的过程中.

在删除图片的方法中的$dir可以用realpath(__FILE__)加上各种"./""../"去给出图片目录相对于网站的目录

对于得到html中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港