磊 的个人资料Mrgaolei的Blog照片日志列表 工具 帮助

日志


12月17日

PHP 中保存一个远程图片/文件到本地的更有效方法

网上搜索了很多方法,大多数是:

ob_start();       # 开启缓冲
readfile($url);    # 输出远程文件的二进制到缓存中
$img = ob_get_contents();    # 把这些二进制存入变量
ob_end_clean(); # 清空缓存
$fp = fopen(“c:/123”, "w”);
fwrite($fp, $img);                 # 保存到硬盘
fclose($fp);

这个方法不好,首先用ob_start()局限性大,况且必须写在第一行,否则高版本PHP无效,会将二进制输出到浏览器,也就是没有开启缓冲区,导致浏览器僵死。

其实最简单最安全的方法是:

copy($url, “c:/123”);

从PHP 4.3.0开始,copy函数支持从网络上copy,所以用这个方法代替上述方法。前提是PHP配置文件需要打开fopen。

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://bdsunmsn.spaces.live.com/blog/cns!1EAE2E7F7915EDE9!281.trak
引用此项的网络日志