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

网络编程 2025-03-25 06:01www.168986.cn编程入门

文章中的图片处理在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的数组函数和正则表达式,我们可以有效地处理文章中的图片,提升网站的管理效率。

上一篇:简单实现JavaScript图片切换效果 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by