1 . curl需要php开启php_curl开启扩展
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.baidu.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
2.file_get_contents()把php的allow_url_fopen选项是必须是开启。
echo $content= file_get_contents("http://www.baidu.com");
总结:
基于2者的启用条件,需要利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数。
下面简单介绍curl:
curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。
$info = curl_getinfo($ch);
得到的是一个数组:
返回的数组中包括了以下信息:
- “url” //资源网络地址
- “content_type” //内容编码
- “http_code” //HTTP状态码
- “header_size” //header的大小
- “request_size” //请求的大小
- “filetime” //文件创建时间
- “ssl_verify_result” //SSL验证结果
- “redirect_count” //跳转技术
- “total_time” //总耗时
- “namelookup_time” //DNS查询耗时
- “connect_time” //等待连接耗时
- “pretransfer_time” //传输前准备耗时
- “size_upload” //上传数据的大小
- “size_download” //下载数据的大小
- “speed_download” //下载速度
- “speed_upload” //上传速度
- “download_content_length”//下载内容的长度
- “upload_content_length” //上传内容的长度
- “starttransfer_time” //开始传输的时间
- “redirect_time”//重定向耗时
下面使用curl实现http的一些请求:
用POST方法发送数据
接下来,写一段PHP脚本来执行cURL请求:
以下为引用的内容: $url = "http://localhost/post_output.php"; |
文件上传:
上传文件和前面的POST十分相似。因为所有的文件上传表单都是通过POST方法提交的。
首先新建一个接收文件的页面,命名为 upload_output.php:
print_r($_FILES);
以下是真正执行文件上传任务的脚本:
以下为引用的内容: $url = "http://localhost/upload_output.php"; |
如果你需要上传一个文件,只需要把文件路径像一个post变量一样传过去,不过记得在前面加上@符号。执行这段脚本应该会得到如下输出: