1

在PHP中使用curl下载和保存图片

Posted by 撒得一地 on 2015年12月27日 in PHP笔记

curl,PHP中使用拓展的libcurl功能,它允许在许多不同类型的协议下,仍然能和不同类型的服务进行连接和交流。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl还支持https证书,http post,http put,ftp 上传等,支持一系列基于http上传,代理(proxies),cookies和用户名加密码身份验证。

下面将介绍一个有用的实例,你可以使用php和curl,将另外一个站点服务器上的图片保存到你的站点。通过下面提供的这个脚本,你只要通过修改站点url,就可以将你添加的站点上的图片保存到你的服务器上。

具体脚步代码:

<?php
function makeCurlCall($url){
$curl = curl_init();
$timeout = 5;
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$timeout);

curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

$output = curl_exec($curl);
curl_close($curl);
return $output;
}

function getImages($html) {
$matches = array();

$url_regex = '~http://somedomain.com/images/(.*?)\.jpg~i';

preg_match_all($url_regex, $html, $matches);

foreach ($matches[1] as $img) {
      saveImages($img);
}
}

function saveImages($name) {
$url = 'http://somedomain.com/images/'.$name.'.jpg';

$data = makeCurlCall($url);

file_put_contents('photos/'.$name.‘.jpg’, $data);
}

$i = 1;
$l = 10;

while ($i < $l) {
$html = makeCurlCall('http://somedomain.com/id/'.$i.'/');

getImages($html);

$i += 1;
}
?>

标签:

上一篇:

下一篇:

相关推荐

1 Comment

Comments are closed. Would you like to contact the author directly?
网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.