php 正则获取字符串中所有图片链接地址并下载图片

 PHP基础  2023-02-23  admin  579  781

php 正则获取字符串中所有图片链接地址并下载图片

/**
 * 获取图片的绝对地址
 * @param string $content
 * @return mixed
 *  @Author: code.cent123.com
 */
function getImageUrl(string $content = "")
{
    //$pattern = "/src=[\"\'](\S*\.(jpg|png))[\"\']/i";
    //$pattern = "/https?:\/\/(\S*\.(jpg|png))/Ui";
    //$pattern = "/https?:\/\/(\S*\.com)(\S*\.(jpg|png|gif|jpeg))/Ui";
    $pattern = "#https?://(\S*\.com)(\S*\.(jpg|png|gif|jpeg))#Ui";
    preg_match_all($pattern, $content, $matches);

    return $matches;
}

/**
 * 下载图片
 * @param $arr
 * @return void
 *  @Author: code.cent123.com
 */
function downloadImage($arr): void
{
    foreach ($arr[0] as $key => $val) {
        //$path_parts = pathinfo($val);
        //$dirname = str_replace($arr[1][$key], "", $path_parts['dirname']);
        //$filename = $dirname . '/' . $path_parts['basename'];

        $path_parts = pathinfo($arr[2][$key]);
        $dirname = $path_parts['dirname'];
        $filename = $arr[2][$key];

        if (!is_dir($dirname)) {
            mkdir($dirname, 0777, true);
        }

        print_r($val."\n");
        file_put_contents($filename, file_get_contents($val));
    }
}

测试

$path = 'E:\www\shop\template\test.html';


$arr = getImageUrl(file_get_contents($path), '');
print_r($arr);
downloadImage($arr);


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


图片批量转换格式扩展名命工具

图片批量转换格式扩展名命工具图片批量转换格式扩展名命令行工具支持多线程设置,速度极快imageConverterGui.7z

图片批量转换格式扩展名命令行工具

图片批量转换格式扩展名命令行工具支持多线程设置,速度极快imageConverter.7z

PHP常用正则表达式汇总

PHP常用正则表达式汇总"^\d+$"  //非负整数(正整数+0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\d+)|(0+))$"  //非正整数(负整数+0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?\d+$"    //整数

Ghostscript pdf转图片的常用方法

Ghostscript是PostScript®语言和PDF文件的解释器。它可以根据GNU GPL Affero许可证获得,也可以从Artifex Software,Inc.获得商业使用许可。它已经积极开发了30多年,在此期间已经移植到多个不同的系统。Ghostscript由PostScript解释器层和图形库组成。https://www.ghostscript.com/ gswin64c.exe