用PHP下载文件的最简单方法是什么

用PHP下载文件的最简单方法是什么,php,curl,file-get-contents,file-access,built-in,Php,Curl,File Get Contents,File Access,Built In,我需要从某个URL下载一个图像到我的服务器。但是,我的服务器配置不允许我这样做: getimagesize( $file ); 因为,它会生成错误: Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration in somefile.php on line 10 那么,有没有其他不需要外部库的方法可以使用呢 好的,我用OIS的解决方案解决了这

我需要从某个URL下载一个图像到我的服务器。但是,我的服务器配置不允许我这样做:

getimagesize( $file );
因为,它会生成错误:

Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration in somefile.php  on line 10
那么,有没有其他不需要外部库的方法可以使用呢

好的,我用OIS的解决方案解决了这个问题:

$filename = '/tmp/'.md5($file);
$ch = curl_init($file);
$fp = fopen($filename, "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);

$ext = getimagesize( $filename );

您可以尝试。

如果服务器上禁用了对URL的文件访问,则无法从外部URL加载任何内容。这就是配置的目的


在未禁用的服务器上,获取文件内容($url)是获取大多数文件的最简单方法。

使用以下方法将文件下载到
$imgdata
。然后,您可以将其保存到文件并获取其图像大小。您可能需要做一些工作来删除文件保存步骤,使其更快

$imgdata = get_file_contents($url);
file_put_contents($filename, $imgdata);
getimagesize( $filename );

除非您修改服务器配置,否则这是不可能的

由于服务器配置的原因,这不起作用。此外,您的代码将产生致命错误。