php curl与fopen下载远程服务器图片实例
fopen函数,代码如下:
<?php
function get_file($url, $folder, $pic_name) {
set_time_limit(24 * 60 * 60); //限制最大的执行时间
$destination_folder = $folder ? $folder . '/' : ''; //文件下载保存目录
$newfname = $destination_folder . $pic_name; //文件PATH
$file = fopen($url, 'rb');
if ($file) {
$newf = fopen($newfname, 'wb');
if ($newf) {
while (!feof($file)) {
fwrite($newf, fread($file, 1024 * 8) , 1024 * 8);
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
}
}
get_file("/img/baidu_logo.gif", "file", "baidu.jpg");
?>php curl函数,代码如下:
<?php
/*
*功能:php多种方式完美实现下载远程图片保存到本地
*参数:文件url,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url, $filename = '', $type = 0) {
if ($url == '') {
return false;
}
if ($filename == '') {
$ext = strrchr($url, '.');
if ($ext != '.gif' && $ext != '.jpg') {
return false;
}
$filename = time() . $ext;
}
//文件保存路径
if ($type) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$img = curl_exec($ch);
curl_close($ch);
} else {
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
}
$size = strlen($img);
//文件大小
$fp2 = @fopen($filename, 'a');
fwrite($fp2, $img);
fclose($fp2);
return $filename;
}
?>开启php curl函数库的步骤:
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
教程网址:http://www.phprm.com/tuxiang/fs1091.html
欢迎收藏∩_∩但请保留本文链接。