Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php正则匹配文章中的远程图片地址并下载图片到本地

作者:ares丶技术魂   发布日期:2024-07-12   浏览:907

可以使用PHP的正则表达式函数preg_match_all()来匹配文章中的远程图片地址,并使用file_put_contents()函数将图片下载到本地。

以下是一个示例代码:

<?php
function downloadImages($content, $savePath) {
    // 匹配图片地址的正则表达式
    $pattern = '/<img[^>]+src\s*=\s*["\'](https?:\/\/[^"\']+\.(?:jpg|jpeg|png|gif))["\'][^>]*>/i';

    // 执行正则匹配
    preg_match_all($pattern, $content, $matches);

    // 遍历匹配到的图片地址
    foreach ($matches[1] as $imageUrl) {
        // 获取图片文件名
        $fileName = basename($imageUrl);

        // 下载图片并保存到本地
        file_put_contents($savePath . '/' . $fileName, file_get_contents($imageUrl));
    }
}

// 要匹配的文章内容
$content = '<html><body><img src="https://example.com/image1.jpg"><img src="https://example.com/image2.png"></body></html>';

// 保存图片的本地路径
$savePath = 'path/to/save/images';

// 调用函数下载图片
downloadImages($content, $savePath);
?>

上述代码中,downloadImages()函数接受两个参数:文章内容$content和保存图片的本地路径$savePath。函数内部使用preg_match_all()函数匹配文章中的远程图片地址,并使用file_put_contents()函数将图片下载到本地。

注意,上述代码只能下载图片文件,对于其他类型的文件(如PDF、视频等)需要使用其他方法进行下载。

上一篇:php缓存技术详细介绍及php缓存的实现代码

下一篇:php操作memcache缓存基础方法

大家都在看

php session用法

php 定义常量

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站