> 백엔드 개발 > PHP 튜토리얼 > php 获取远路文件 保存本地 一般用哪种方法

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

WBOY
풀어 주다: 2016-06-13 12:54:14
원래의
835명이 탐색했습니다.

php 获取远程文件 保存本地 一般用哪种方法
就是把本地远程的资源 下载到本地
知道的方法有  
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";
也能保存到本地
(这是个例子  应该还有其他的情况,只是我不知道举不出例子)


------解决方案--------------------
前两种搭配使用吧
频繁交互长链接可选socket
我怎么对php的socket没啥好感啊
一切以需求为准则

你这个https可这样来处理
<br />
	$url = "https://raw.github.com/robgietema/obviel-bootstrap/18625b502c9a11a90eb18285a2d3cb22c499aa41/libs/jquery/1.8.3/jquery.js";<br />
    $ch = curl_init();  <br />
    curl_setopt($ch, CURLOPT_URL, $url);  <br />
    curl_setopt($ch, CURLOPT_HEADER, false);  <br />
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  <br />
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  <br />
    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');  <br />
    $res = curl_exec($ch);  <br />
    $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE);   <br />
    curl_close($ch) ;  <br />
    <br />
	file_put_contents("test123.txt",$res);//write<br />
로그인 후 복사


------解决方案--------------------
file_get_contents最方便,但在超时问题上和自身处理错误上有代研究,

curl强大无所不能。只不过需要外加扩展,有的服务器可能不支持,就影响了移植。

至于socket,真没那必要。你真想要用,开源代码有现在的。
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿