php笔记之:文章中图片处理的使用
文章中的图片处理在PHP中的实际应用
在编辑文章的过程中,处理图片是一项重要任务。今晚,我在使用新浪编辑器发表文章时,遇到了一个有趣的问题,并借助PHP的数组函数和正则表达式解决了它。
问题背景:
处理办法:
从数据库中获取原始的文章内容,这里我们使用正则表达式来提取文章中的图片文件名。具体的函数如下:
```php
public function getImgsInArticle($content) {
$temp = array();
$imgs = array();
preg_match_all('/http[^\d][\d]+[\.](jpg|gif|png)/', $content, $temp);
$imgs = $temp[0];
if (!empty($imgs)) {
foreach ($imgs as $img) {
$imgInfo = pathinfo($img);
$imgs[] = $imgInfo['basename'];
}
return $imgs;
} else {
return false;
}
}
```
这个函数通过正则表达式从文章内容中提取图片链接,并返回包含图片名的数组。接下来,从用户提交的新内容中提取所有的图片,并与原始图片数组进行比较。如果原始数组中的图片在用户新提交的内容中没有出现,那么我们就将其删除。具体代码如下:
```php
$oldImgs = $this->getImgsInArticle($oldArticleData['article_content']);
$newImgs = $this->getImgsInArticle($data['articlecontent']);
$newImgs = empty($newImgs) ? array() : $newImgs;
if ($oldImgs !== false) {
$diff = array_diff($oldImgs, $newImgs);
if (!empty($diff)) {
foreach ($diff as $imgName) {
$this->delImg($imgName, ARTICLE_IMG_DIR);
}
}
}
```
删除图片的方法很简单:
```php
public function delImg($imgName, $dir) {
@unlink($dir . '/' . $imgName);
return true;
}
```
这样,当用户编辑带有图片的文章并删除了某些图片时,相应的图片也会从网站上删除。获取文章中的图片名称的方法还可以应用于删除文章的过程中。对于获取图片目录的相对路径,可以使用 `realpath(__FILE__)` 结合各种路径来指定。需要注意的是,这里的正则表达式有待深入研究和改进。最近,我发现一本关于正则表达式的书——《精通正则表达式第三版》,由Jeffrey E.F. Friedl著,余晟(cheng)译,非常值得一读。
通过PHP的数组函数和正则表达式,我们可以有效地处理文章中的图片,提升网站的管理效率。
编程语言
- php笔记之:文章中图片处理的使用
- 简单实现JavaScript图片切换效果
- vue主动刷新页面及列表数据删除后的刷新实例
- jQuery中end()方法用法实例
- .Net判断一个对象是否为数值类型实例
- DOM 高级编程
- JavaScript正则表达式校验非零的负整数实例
- JS实现动态添加外部js、css到head标签的方法
- Javascript与PHP验证用户输入URL地址是否正确
- .net验证码的刷新或局部刷新的方法实例
- 2013年CIO需要知道的八句格言
- ASP是使用正则提取内容里所有图片路径SRC的实现
- 浅谈jQuery中ajaxPrefilter的应用
- vue全局使用axios的方法实例详解
- jquery简单插件制作(fn.extend)完整实例
- JavaScript正则表达式之multiline属性的应用