php 获取远程文件 保存本地 一般用哪种方法

wtcsy 2013-02-17 05:12:12
就是把本地远程的资源 下载到本地
知道的方法有
fopen

file_get_contents

有 curl的 CURLOPT_FILE
$fp = fopen($local, "w");
curl_setopt($cp, CURLOPT_FILE, $fp);


还有socket方法



哪种方法好些??????
就是能够让一些特殊情况下 也能把远程文件保存到本地

比如一个https的资源
$url = "https://raw.github.com/robgietema/obviel-bootstrap/18625b502c9a11a90eb18285a2d3cb22c499aa41/libs/jquery/1.8.3/jquery.js";
也能保存到本地
(这是个例子 应该还有其他的情况,只是我不知道举不出例子)

...全文
415 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
craboy1 2013-02-17
  • 打赏
  • 举报
回复
file_get_contents最方便,但在超时问题上和自身处理错误上有代研究, curl强大无所不能。只不过需要外加扩展,有的服务器可能不支持,就影响了移植。 至于socket,真没那必要。你真想要用,开源代码有现在的。
franzhong 2013-02-17
  • 打赏
  • 举报
回复
file_get_contents操作本地有优势 curl远程采集有优势 socket我觉不太成熟(个人见解吧)
wtcsy 2013-02-17
  • 打赏
  • 举报
回复
为什么是前2中好些了 不明白啊 求指教 我一直以为 curl 和 socket好些 因为可以设置请求头 伪造来路
franzhong 2013-02-17
  • 打赏
  • 举报
回复
前两种搭配使用吧 频繁交互长链接可选socket 我怎么对php的socket没啥好感啊 一切以需求为准则 你这个https可这样来处理

	$url = "https://raw.github.com/robgietema/obviel-bootstrap/18625b502c9a11a90eb18285a2d3cb22c499aa41/libs/jquery/1.8.3/jquery.js";
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_HEADER, false);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');  
    $res = curl_exec($ch);  
    $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE);   
    curl_close($ch) ;  
    
	file_put_contents("test123.txt",$res);//write

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧