php中curl的用法

作者:湖北诺贝特科技有限公司  来源:www.nbt158.com未知  发布时间:2017-09-08 23:06:06
php中curl的用法

首先给出一个最简单的例子

$url = ""; $ch = curl_init($url); //初始化一个cURL会话 curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话

运行之后可以看到,网页的源代码被打印了出来。

将网页源代码存储到变量中 $url = ""; $ch = curl_init($url); //初始化一个cURL会话 //设置cURL传输选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 $content = curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话 echo $content."\n"; //输出网页源代码

这里用到了参数CURLOPT_RETURNTRANSFER

不输出头文件 $url = ""; $ch = curl_init($url); //初始化一个cURL会话 //设置cURL传输选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_HEADER, false); //不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容 $content = curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话 echo $content."\n"; //输出网页源代码

这里用到了参数CURLOPT_HEADER

将网页源代码输出到文件 $url = ""; $fp = fopen("output.dat", "w"); $ch = curl_init($url); //初始化一个cURL会话 //设置cURL传输选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_HEADER, false); //不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容 curl_setopt($ch, CURLOPT_FILE, $fp); //设置输出文件,默认为STDOUT (浏览器)。 curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话 fclose($fp);

这里用到了参数CURLOPT_FILE

指定userAgent

userAgent属性是一个只读的字符串,声明了浏览器用于HTTP请求的用户代理头的值。在每次浏览器(邮件客户端/搜索引擎蜘蛛)进行HTTP请求时发送到服务器,服务器就知道了用户是使用什么浏览器(邮件客户端/搜索引擎蜘蛛)来访问的。

这里有各种浏览器的userAgent的搜集。

获取自己使用的浏览器的userAgent的方法

<script> javascript:alert(navigator.userAgent) </script>

或者便于复制的

<script> window.onload=function(){ document.getElementById("content").innerHTML = ""+navigator.userAgent; } </script>

我当前使用的浏览器的userAgent为Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36

$url = ""; $ch = curl_init($url); //初始化一个cURL会话 //设置cURL传输选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_HEADER, false); //不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36"); //在HTTP请求中包含一个"User-Agent: "头的字符串。 $content = curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话 echo $content."\n"; //输出网页源代码

这里用到了参数CURLOPT_USERAGENT

连接超时 和 获取超时 $url = ""; $ch = curl_init($url); //初始化一个cURL会话 //设置cURL传输选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_HEADER, false); //不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36"); //在HTTP请求中包含一个"User-Agent: "头的字符串。 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); //在尝试连接时等待的秒数。设置为0,则无限等待。这里设置为15秒 curl_setopt($ch, CURLOPT_TIMEOUT, 30); //允许 cURL 函数执行的最长秒数。这里设置为30秒 $content = curl_exec($ch); //执行一个cURL会话 curl_close($ch); //关闭一个cURL会话 echo $content."\n"; //输出网页源代码

CURLOPT_CONNECTTIMEOUT用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;

CURLOPT_TIMEOUT用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉做网站 https://www.feimao666.com


上一篇:Python实现设计模式--07.原型模式(Prototype Pattern
下一篇:最后一页