获取演出详情数据的图片 url 根据要求组合后重复替换详情里的对方 url

问题阐述

做电商平台的是否经常会拉取其他公司的演出,但是演出的详情里面会存有大量的图片url,拉取过来后想换成自己公司图片服务器上url

解决方式

    // $detail:详情内容 字符串
    preg_match_all('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $detail, $match);
    // 提取详情里面的url数据,是个数据文件,然后进行上传到我们的服务器
    $new = [];
    foreach($match[2] as $v){
        $uniqid = uniqid();
        $suf = pathinfo($url, PATHINFO_EXTENSION);
        $image = "./public/Mygladmin/img/{$uniqid}.". $suf;
        ob_clean();
        ob_start();
        readfile($url);     //读取图片
        $img = ob_get_contents();   //得到缓冲区中保存的图片
        ob_end_clean(); 
        $file = fopen($image, 'w');
        fwrite($file, $img);
        fclose($file);
        // 上传到服务器
        $fileInfo = fastdfs_storage_upload_by_filename($image, $suf);
        fastdfs_disconnect_server();
        fastdfs_tracker_close_all_connections();
        // 删除本地图片
        unlink($image);
        $new[] = '/' . $fileInfo['group_name'] . "/" . $fileInfo['filename'];
    }

    // 这个php自带函数可以根据前面2个数组参数里面的对应关系替换详情里面的数据
    $detail  = str_replace($match[2], $new, $detail);
本作品采用《CC 协议》,转载必须注明作者和本文链接
Json-X
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!