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