php用正则匹配远程图片,PHP远程采集正则图片案例

很多时候我们需要采集其他网站的图片到本地,主要是为了稳定性,以及方便管理。下面提供一段代码。大家参考!

//图片接口地址(这里还是要拿小诗梦开刀)

$url = 'https://******/';

// 图片存放文件夹

$path = 'images/';

$str = file_get_contents($url);

preg_match_all('//',$str,$img);

$imgUrl = 'https://'.$img[2][0];

if(!$imgUrl){

exit(json_encode(array('error'=>'采集失败')));

}

$filename = basename($imgUrl);

$filenames = $path.$filename;

if(file_exists($filenames)){

//文件已经存在

echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'202'));

}else{

if(download($imgUrl,$path)){

//采集成功

echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'200'));

}else{

//采集失败

echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'201'));

}

}

function download($url, $path = 'images/')

{

//远程下载保存

if (! file_exists ( $path )) {

mkdir ( "$path", 0777, true );

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

$file = curl_exec($ch);

curl_close($ch);

$filename = pathinfo($url, PATHINFO_BASENAME);

$resource = fopen($path . $filename, 'a');

fwrite($resource, $file);

fclose($resource);

return true;

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值