php文章中图片处理的使用

 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中的路径这里的正则写的不是很好.有待研究.最近发现一本正则的书.很不错

时间: 2024-09-11 12:07:35

php文章中图片处理的使用的相关文章

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

array_diff($arr1,$arr2)php数组函数之一,用来计算数组的差集.正则匹配html图片标签用sinaeditor添加的图片删除操作用法之一,今天晚上在用新浪编辑器发表文章的过程中.使用到了此函数 问题描述: 文章中有图片若干.在增加文章的过程中自动上传到网站的图片目录中在修改文章的过程中如果对图片进行相关的删除操作.那么虽然在代码中(已经存入数据库);已经删除了数据的标签.类似于<img src=http://......>这样的标签.但是图片的文件依旧存在于网站上.这时候

Dedecms批量替换文章中图片地址方法小结

第一种情况:页面图片无法显示 这个好办,直接用dreamever或其他编辑器批量替换模版文件里面的路径就好了,把以前的路径替换成当前的.例如:以前的是"/dedecms/images/1.jpg",可以将"/dedecms/images/"批量替换成"/images/". 第二种情况:缩略图和文章图片无法显示 此时,就要操作数据库了,因为缩略图和文章图片的路径是存在数据库对应表里面的.文章缩略图存在archives表的litpic字段中,文章图片

php 取得文章中图片地址

我这是看看dede里面的一段代码,他是用php正则把html文件的内容中的img src 中的图片地址获取然后再上传到本地服务器中哦,下面我们来看看是如何写的吧. $body="中国WEB第一站<img src=yun_qi_img/a.gif>"; preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isU",$body,$img_array); $im

dedecms实现自动打包文章中图片并下载

示例代码  代码如下 复制代码 include("data/common.inc.php"); //加载数据库 $conn = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd) ;//or die(mysql_error()); mysql_select_db($cfg_dbname,$conn); mysql_query("set Names '$cfg_db_language'"); $id = intval(i

html-c# 提取微信文章中的图片是WEBP格式,如何转成JPG格式以便能够正常显示?

问题描述 c# 提取微信文章中的图片是WEBP格式,如何转成JPG格式以便能够正常显示? 根据微信文章地址,提取到了微信文章的HTML源文件,但图片是WEBP格式,并防盗链. 请问,如何通过C#方法,把WEBP转成JPG格式用于保存在本地以便可以正常浏览? 提取到的微信图片的地址如下: http://mmbiz.qpic.cn/mmbiz/Ek7ZheM28KXya0WfIFv58aNZEBb3YSWX9iaMJHLhuz7o5xNia68MItJfDya947ibSX1HVNpy9V3iaJr

如何在博客文章中添加背景图片

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 博客文章中添加背景图片 一.blog贴图(仅限网易博客) 其实贴图的显示问题和图片的来源有关.如果blog中插入的图片是来自网易相册的,就可以在主页显示,其它来源的图片就不能了.因此,大家想要贴图在主页显示,只要把图片先存入网易相册,再调用相册里的图片链接就ok了!(贴图应在设计视图完成!)设计图可以到我图网里下载http://www.ooo

isee中怎样在文章中插入图片

文章中插入图片-isee图片专家">            注:更多精彩教程请关注三联电脑教程栏目

php采集文章中的图片获取替换到本地

本篇文章是对php采集文章中的图片获取替换到本地的实现代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: /**  * 获取替换文章中的图片路径  * @param string $xstr 内容  * @param string $keyword 创建照片的文件名  * @param string $oriweb 网址  * @return string  *  */ function replaceimg($xstr,$keyword, $oriweb){     //保存

php采集文章中的图片获取替换到本地(实现代码)_php技巧

复制代码 代码如下: /** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $keyword 创建照片的文件名 * @param string $oriweb 网址 * @return string *  */function replaceimg($xstr,$keyword, $oriweb){     //保存路径    $d = date('Ymd', time());    $dirslsitss = '/var/www