文档章节

curl 和file_get_contents

just_wkj
 just_wkj
发布于 2016/02/03 13:17
字数 180
阅读 42
收藏 0
function httpGet($url,$time=5) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_TIMEOUT,$time);
	curl_setopt($curl, CURLOPT_URL, $url);

	$res = curl_exec($curl);
	curl_close($curl);

	return $res;
}
//https
function httpGet($url,$time=5,$is_ssl=0) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_TIMEOUT, $time);
	curl_setopt($curl, CURLOPT_URL, $url);
	if($is_ssl){
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	}
	$res = curl_exec($curl);
	curl_close($curl);

	return $res;
}
	function curl_get($url) {
		$defaults = array(
			CURLOPT_URL => $url, 
			CURLOPT_HEADER => 0, 
			CURLOPT_RETURNTRANSFER => TRUE, 
			CURLOPT_TIMEOUT => 4 
		); 
		
		$ch = curl_init(); 
		curl_setopt_array($ch,  $defaults); 
		if( ! $result = curl_exec($ch)){ 
			trigger_error(curl_error($ch)); 
		} 
		curl_close($ch); 
		return $result; 
	}
	
function curl_post($url, array $post = NULL, array $options = array()) 
{ 
    $defaults = array( 
        CURLOPT_POST => 1, 
        CURLOPT_HEADER => 0, 
        CURLOPT_URL => $url, 
        CURLOPT_FRESH_CONNECT => 1, 
        CURLOPT_RETURNTRANSFER => 1, 
        CURLOPT_FORBID_REUSE => 1, 
        CURLOPT_TIMEOUT => 4, 
        CURLOPT_POSTFIELDS => http_build_query($post) 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, ($options + $defaults)); 
    if( ! $result = curl_exec($ch)) 
    { 
        trigger_error(curl_error($ch)); 
    } 
    curl_close($ch); 
    return $result; 
}

直接用file_get_contents是没有超时时间的限制,一旦卡住会造成进程堵死。以后api接口都要用curl抓取,切记


© 著作权归作者所有

共有 人打赏支持
上一篇: Exception
下一篇: 爬取贴吧帖子
just_wkj

just_wkj

粉丝 2
博文 80
码字总数 15398
作品 0
南京
程序员
私信 提问
淘宝api 处理对象和数组用到的自定义函数 以及 开发能用到的方法

function getXmlData ($strXml) { $pos1 = strpos($strXml, 'xml'); if ($pos1) { echo 'sddfdsf'; $xmlCode=simplexmlloadstring($strXml,'SimpleXMLElement', LIBXML_NOCDATA); $arrayCode......

李佳顺
2012/09/29
0
0
php中 curl, fsockopen ,file_get_contents 三个函数 比较

赵永斌: 有些时候用filegetcontents()调用外部文件,容易超时报错。换成curl后就可以.具体原因不清楚 curl 效率比filegetcontents()和fsockopen()高一些,原因是CURL会自动对DNS信息进行缓存(...

lixiaokai2008
2013/09/26
0
8
php下curl与file_get_contents性能对比

前言 php站点没什么访问量,但是负载又出奇的高,反馈给程序员一般就一个结果,代码没有问题,检查一下服务器是不是正常的,有些人就不停的处在扯皮时期了,何不查查问题. 好吧,我这有一例,...

小运
2013/08/28
0
1
PHP中fopen,file_get_contents,curl的区别

fopen /filegetcontents 每次请求都会重新做DNS查询,并不对 DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。这大大减少了DNS查询...

Surjur
2014/09/10
0
0
PHP中获取远程文件的三种方法

1.filegetcontents <?php $url = 'http://www.xxx.com/';$contents = filegetcontents($url);//如果出现中文乱码使用下面代码//$getcontent = iconv(“gb2312″, “utf-8″,filegetcontents(......

slagga
2016/10/27
10
0

没有更多内容

加载失败,请刷新页面

加载更多

程序中设置MySQL的默认值

import com.alibaba.fastjson.JSON;import java.beans.PropertyDescriptor;import java.lang.annotation.*;import java.lang.reflect.Field;import java.lang.reflect.Method;impo......

laolin23
10分钟前
0
0
WordPress没有上级目录的写权限

sudo chmod -R 777 wordpress/wp-content

临江仙卜算子
17分钟前
0
0
大数据学习之大数据技术笔记—spring入门

篇一 spring介绍 spring.io 官网 快速开始 Aop 面向切面编程,可以任何位置,并且可以细致到方法上 连接框架与框架 Spring 就是 IOC AOP 思想 有效的组织中间层对象一般都是切入 service 层 ...

董黎明
18分钟前
4
0
ASP.NET Core MVC 静态文件配置

在启动文件中添加以下配置 public class Startup{ public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddDirectoryBrowser(); ......

whltian
46分钟前
1
0
linux之自定义命令

本人使用的是ubuntu系统,不喜欢建各种桌面快捷链接,但是每次启动个软件,去查找又麻烦,所以自定义了命令,来快捷的启动应用: 1、修改/etc/bash.bashrc,在文件末尾,加上如下List-1中的内...

克虏伯
54分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部