獲取演出詳情資料的圖片 url 根據要求組合後重復替換詳情裡的對方 url

Json-X發表於2019-11-23

做電商平臺的是否經常會拉取其他公司的演出,但是演出的詳情裡面會存有大量的圖片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);

相關文章