/**
* 文件下载到本地目录
* @param $url
* @return string
*/
function _download($url) {
$folder = $this->path;
set_time_limit(24 * 60 * 60); // 设置超时时间
$destination_folder = $folder . '\\'; // 文件下载保存目录,默认为当前文件目录
if(!is_dir($destination_folder)) { // 判断目录是否存在
$this->_mkdirs($destination_folder); // 如果没有就建立目录
}
$newfname = $destination_folder . basename($url); // 取得文件的名称\
$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); // 关闭本地文件
}
return $newfname;
}
function _mkdirs($path, $mode = "0755") {
if(!is_dir($path)) { // 判断目录是否存在
$this->_mkdirs(dirname($path), $mode); // 循环建立目录
mkdir($path, $mode); // 建立目录
}
return true;
}
/**
* 获取远程文件内容
* @param $url
*/
function _fopenUrl($url) {
$file_content = '';
if(function_exists('file_get_contents')) {
$file_content = @file_get_contents($url);
} elseif(ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))) {
$i = 0;
while(!feof($file) && $i++ < 1000) {
$file_content .= strtolower(fread($file, 4096));
}
fclose($file);
} elseif(function_exists('curl_init')) {
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_FAILONERROR, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾邮件检查
$file_content = curl_exec($curl_handle);
curl_close($curl_handle);
} else {
$file_content = '';
}
return $file_content;
}
转载于:https://my.oschina.net/u/3054838/blog/1982507