小女子想请教大家一个问题,我想从http://open.thumbshots.org/这获取的网站缩略图下载到我空间上,这个该怎么实现呢?这个是现在存在问题的代码:function save_to_local($weburl, $savepath = '') {
$succeed = false;
set_time_limit(0);
if (substr($savepath, -1) != '/') $savepath .= '/';
if (!is_dir($savepath)) @mkdir($savepath, 0777);
$imgurl = 'http://open.thumbshots.org/image.pxf?url='.$weburl;
$newpath = $savepath.$weburl.'.jpg';
$data = get_url_content($imgurl);
if (strlen($data) != 1984) {
if ($data) {
$fp = @fopen($newpath, "w");
@fwrite($fp, $data);
@fclose($fp);
$succeed = true;
}
}
if ($succeed) {
return $newpath;
} else {
return $succeed;
}
}php.ini里开启了curl功能,文件权限也给了,就是不能下载,都快郁闷死了
$succeed = false;
set_time_limit(0);
if (substr($savepath, -1) != '/') $savepath .= '/';
if (!is_dir($savepath)) @mkdir($savepath, 0777);
$imgurl = 'http://open.thumbshots.org/image.pxf?url='.$weburl;
$newpath = $savepath.$weburl.'.jpg';
$data = get_url_content($imgurl);
if (strlen($data) != 1984) {
if ($data) {
$fp = @fopen($newpath, "w");
@fwrite($fp, $data);
@fclose($fp);
$succeed = true;
}
}
if ($succeed) {
return $newpath;
} else {
return $succeed;
}
}php.ini里开启了curl功能,文件权限也给了,就是不能下载,都快郁闷死了
估计是这一分支出了意外。我尝试传递一些参数给http://open.thumbshots.org/
如果参数不是一个可以访问到网址,就会出现这种问题,你不如 var_dump($weburl) 看看
function save_to_local($weburl, $savepath = '', $proxy = '', $port = 8000) { $succeed = false; set_time_limit(0);
if (substr($savepath, -1) != '/') $savepath .= '/';
if (!is_dir($savepath)) @mkdir($savepath, 0777); if (empty($proxy)) {
$fp = fsockopen('open.thumbshots.org', 80, $err, $errno, 3);
} else {
$fp = fsockopen($proxy, $port, $err, $errno, 3);
}
if (!$fp) {
echo "Connection failed. $err($errno)";
return false;
}
if (!empty($proxy)) {
fputs($fp, 'GET http://open.thumbshots.org/image.pxf?url=' . urlencode($weburl) . " HTTP/1.0\r\n");
} else {
fputs($fp, 'GET /image.pxf?url=' . urlencode($weburl) . " HTTP/1.0\r\n");
}
fputs($fp, "Host: open.thumbshots.org\r\n\r\n");
$data = '';
while (!feof($fp)) {
$data .= fread($fp, 1024);
}
$data = preg_replace('/^.+(\\r\\n){2}/s', '', $data);
$newpath = $savepath.urlencode($weburl).'.jpg';
if (!empty($data)) {
$fp = @fopen($newpath, "w");
@fwrite($fp, $data);
@fclose($fp);
$succeed = true;
}
if ($succeed) {
return $newpath;
} else {
return $succeed;
}
}
echo save_to_local('www.baidu.com', './');
?>
你这里的文件名问题吧,如果有http://就会带有 ”/“这种字符 貌似是不行的···