在 PHP 中,curl_error() 函数用于获取最后一次 curl 操作的错误信息。当该函数返回数字 1 时,表示没有错误发生。因此,如果你得到了 1 的结果,说明没有错误发生,curl 操作成功。
curl 命令如何获取 http 请求的响应消息头信息? 主要有两种方式: (1) 通过 --head 选项只返回消息头,等价于 -I,示例如下: [demo@Linux ~]$ curl --head http://www.phpernote.com/ curl --head www.phpernote.com HTTP/1.1 301 Moved Permanently Server: nginx Date: Wed, 03 Nov 2021 07:18:26 GMT Content-Type: text/html Content-Length: 162 Connection: keep-alive Location: https://www.phpernote.com/ (2) 通......
通过curl模拟http请求的时候,如果希望服务器返回正确的文档类型和文档语言设置,就需要在请求里面带上 header 头信息了。这里记录一下php curl 带着请求头模拟访问网页的方法。 $headers = array(); $headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; $headers[] = 'Accept-Language: zh-CN,zh;q=0.8'; $headers[] = 'Cache-Control: no-cache'; $headers[] = 'User-Agent: Mozilla/5.......
由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号。有所收获。这里总结下个人经验。 开讲前,先吐槽一下新浪云服务器,一个程序里的 同一个函数 在PC测试可以正常运行,在它那里就会挂的现象。 老样子,我将在代码里注释清楚。使用下面的函数,将会获得两种形式的 cookie,一种保存在文件中,一种直接以变量的形式返回。 经验提示: 有时候,在不同的代码运行环境中,带着文件cookie 去访问会成功,而变量......
通过php的curl方法模拟请求的时候,通常都会遇到需要登录才能请求真实数据的网页。这个时候如果要抓取信息就必须在header里面传递cookie值。这里简要说下如何在curl里面添加cookie伪造登录模拟请求的方法。 1、通过chorme浏览器登陆网站,当然也可以使用firefox等可以看请求信息的浏览器,打开调试模式,看 Network 一栏的网页请求的 Request Headers 信息。 会看到关于请求所附带的 Cookie 信息,复制这里的Cookie值。 2、将复......
本文章来给大家介绍一个利用PHP curl模拟POST提交XML数据,因为接受方只接受xml数据所以我就写了一个,下面分享给各位朋友,有需要的朋友可参考。 <?php $url="http://www.phpernote.com/login"; $ch=curl_init(); $header[]="Content-type: text/xml";//定义content-type为xml $data='<?xml version="1.0" encoding="utf-8"?> <root> <data> <username>admin</username> <password>12345</passwor......
PHP curl实现远程下载文件到本地,该函数返回结果包括下载耗用的时间,保存的文件名,以及使用的下载方式。写的比较粗糙,如果大家有好的建议及改进方案,欢迎留言给我哦! 具体代码如下: <?php //$result=httpcopy('http://www.phpernote.com/image/logo.gif'); echo '<pre>';print_r($result); function httpcopy($url,$file='',$timeout=60){ $file=empty($file)?pathinfo($url,PATHINFO_BASENAME):$file; ......
本篇文章分享一些在php中关于file_get_contents于curl性能效率的比较。文章内容整理自网络,如有不正确的地方,可及时留言补充纠正。 (1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是curl会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以curl的性能比fopen/file_get_contents 好很多。 (2)fopen/file_ge......
使用php curl系列函数的时候经常会发生这种情况,在本地调试好好的程序上传到服务器却报各种错误,比如Call to undefined function curl_init()......这种最常见了,那么对于这种错误,该怎么办呢? 因为curl系列函数属于系统级函数,提示这种没有找到curl_init函数的错误一般是因为没有开启相关的扩展导致的。这个时候我们就知道该怎么办了,开启php curl扩展。 windows+apache下的解决办法: 找到php.ini配置文件,在文件中查......
再分享一种利用php curl实现多线程的方法,具体方法如下: /* * http://www.phpernote.com/php-function/388.html * php curl 多线程类 */ class MultiHttpRequest{ public $urls=array(); public $curlopt_header=1; public $method="GET"; function __construct($urls=false){ $this->urls=$urls; } function set_urls($urls){ $this->urls=$urls; return ......
php 使用 curl 模拟实现 get 和 post请求的方法。 <?php /* * url post请求地址 * post post数据 * cookie cookie数据,传递一个包含HTTP cookie的头连接 * cookie 获取到的cookie信息的保存位置 * referer 在HTTP请求中包含一个"referer"头的字符串 */ function vcurl($url,$post='',$cookie='',$cookiejar='',$referer=''){ $tmpInfo=''; $cookiepath=getcwd().'./'.$cookiejar; $curl=curl_init(); curl_se......
PHP curl批量多线程打开网址的类,类代码如下: <?php class curl_multi{ //curl句柄 private $curl_handle=null; //网址 private $url_list=array(); //参数 private $curl_setopt=array( 'curlOPT_RETURNTRANSFER'=>1,//结果返回给变量 'curlOPT_HEADER'=>0,//要HTTP头不? 'curlOPT_NOBODY'=>0,//不要内容? 'curlOPT_FOLLOWLOCATION'=>0,//自动跟踪 ......
分享一个php多线程类(其实是php利用curl实现的一个多线程类),有了这个类,我们也可利用该类执行多线程任务了! <?php class curl_multi{ private $url_list=array(); private $curl_setopt=array( 'curlOPT_RETURNTRANSFER' => 1,//结果返回给变量 'curlOPT_HEADER' => 0,//是否需要返回HTTP头 'curlOPT_NOBODY' => 0,//是否需要返回的内容 'curlOPT_FOLLOWLOCATION' => 0,/......
PHP中的curl_multi一类函数可以实现同时请求多个url,而不是一个一个依次请求,这就类似一个进程实现了多个线程的功能,因此可以使用PHP利用curl_MULTI实现完成多线程类的任务,下面就一个利用PHP curl_MULTI多线程采集网页为例来说明一下。 <?php //功能:PHP利用curl_MULTI多线程采集网页函数 $text=remote(array('http://www.phpernote.com','http://www.baidu.com/','http://www.google.com.hk/','http://www.taobao.com'......
PHP 利用 curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助curl Multi Functions 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件,至于具体实现过程,请参考下面几个例子: (1)下面这段代码是实现抓取多个URL,然后将抓取的URL的页面代码写入指定的文件 $urls = array( 'h......
【原创】在php中分别使用curl的post提交数据的方法和get获取网页数据的方法整理分享一下额,具体代码如下: (1)使用php curl获取网页数据的方法: $ch=curl_init(); //设置选项,包括URL curl_setopt($ch,curlOPT_URL,"http://www.phpernote.com"); curl_setopt($ch,curlOPT_RETURNTRANSFER,1); curl_setopt($ch,curlOPT_HEADER,0); //执行并获取HTML文档内容 $output=curl_exec($ch); //释放curl句柄 curl_close($c......
作为一个phper经常会遇到这样一个错误,curl_init -- 使用curl的时候提示Call to undefined function curl_init...遇到这种错误的解决方案如下。 以windows下的php+apache为例。 首先,打开php.ini,找到“extension=php_curl.dll”,然后去掉前面的“;”注释,重启apache即可。 如果还出现此类问题,先检查php.ini的extension_dir值是哪个目录,在那个目录下检查有无php_curl.dll,没有的话请下载php_curl.dll,再把php目录中......