文档章节

curl 和file_get_contents

just_wkj
 just_wkj
发布于 2016/02/03 13:17
字数 180
阅读 40
收藏 0
点赞 1
评论 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抓取,切记


© 著作权归作者所有

共有 人打赏支持
just_wkj

just_wkj

粉丝 2
博文 58
码字总数 14996
作品 0
南京
程序员
PHP读取远程文件的三种方法

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

刘赤龙 ⋅ 2010/06/08 ⋅ 0

php中 curl, fsockopen ,file_get_contents 三个函数 比较

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

lixiaokai2008 ⋅ 2013/09/26 ⋅ 8

淘宝api 处理对象和数组用到的自定义函数 以及 开发能用到的方法

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

李佳顺 ⋅ 2012/09/29 ⋅ 0

php下curl与file_get_contents性能对比

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

小运 ⋅ 2013/08/28 ⋅ 1

PHP中fopen,file_get_contents,curl的区别

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

Surjur ⋅ 2014/09/10 ⋅ 0

PHP中获取远程文件的三种方法

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

slagga ⋅ 2016/10/27 ⋅ 0

file_get_content 和curl以及fopen 谁的效率最高

三个函数虽然都是读取资源的函数,但各自的应用场景不同。 curl多用于互联网网页之间的抓取,fopen多用于读取文件,而filegetcontents多用于获取静态页面的内容。 1. fopen /filegetcontent...

范思哲思考者 ⋅ 2014/09/18 ⋅ 0

file_get_contents伪造user_agent curl设置useragent的方法

filegetcontents 和 curl 这俩强悍的函数,在远程抓取时候相当有用处.不过一些网站会根据来访ip是否携带useragent来判断是正常的浏览器客户端还是机器.所以,我们的任务就是给他们伪造userage...

JK_OPERA ⋅ 2014/08/26 ⋅ 0

curl 或 file_get_contents 获取需要授权页面的方法

今天因工作需要,需要用 curl / filegetcontents 获取需要授权(Authorization)的页面内容,解决后写了这篇文章分享给大家。 php curl 扩展,能够在服务器端发起POST/GET请求,访问页面,并能...

蜗牛奔跑 ⋅ 2016/03/07 ⋅ 0

php curl方法模拟远程登录

使用curl方法模拟远程登录 * 模拟登录bbs.php100.com成功获取金钱数 $cookie_file= tempnam('./temp','cookie'); $login_url='http://bbs.php100.com/login.php'; $post_fields='cktime=315......

MIANMIANLIFE ⋅ 2015/12/15 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 16分钟前 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 20分钟前 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 22分钟前 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 41分钟前 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 48分钟前 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 49分钟前 ⋅ 0

监控各项服务

比如有三个服务, 为了减少故障时间,增加监控任务,使用linux的 crontab 实现. 步骤: 1,每个服务写一个ping接口 监控如下内容: 1,HouseServer 是否正常运行,所以需要增加一个ping的接口 ; http...

黄威 ⋅ 52分钟前 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 52分钟前 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 58分钟前 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部