类别:PHP教程 / 日期:2019-12-01 / 浏览:196 / 评论:0

假如你想相识更多关于php的学问,能够点击:php教程
cURL能够运用URL的语法模仿阅读器来传输数据,由于它是模仿阅读器,因而它一样支撑多种协定,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协定都能够很好的支撑,包括一些:HTTPS认证,HTTP POST要领,HTTP PUT要领,FTP上传,keyberos认证,HTTP上传,代办效劳器,cookies,用户名/暗码认证,下载文件断点续传,上传文件断点续传,http代办效劳器管道,以至它还支撑IPv6,scoket5代办效劳器,经由过程http代办效劳器上传文件到FTP效劳器等等。
运用PHP的cURL库能够简朴和有用地去抓网页。你只需要运转一个剧本,然后剖析一下你所抓取的网页,然后就能够以顺序的体式格局取得你想要的数据了。无论是你想从从一个链接上取部份数据,或是取一个XML文件并把其导入数据库,那怕就是简朴的猎取网页内容,cURL 是一个功能强大的PHP库。
1、PHP竖立CURL请求的基础步骤
①:初始化
curl_init()
②:设置属性
curl_setopt()
.有一长串cURL参数可供设置,它们能指定URL请求的各个细节。
③:实行并猎取效果
curl_exec()
④:开释句柄
curl_close()
2、实例:
php curl 发送get请求:
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置猎取的信息以文件流的情势返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //实行命令 $data = curl_exec($curl); echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状况码 //封闭URL请求 curl_close($curl); //显现取得的数据 print_r($data);
php curl 发送post请求:
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置猎取的信息以文件流的情势返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post体式格局提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 $post_data = array( "title" => "1290800466", "content" => "3424243243" ); //post提交的数据 curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //实行命令 $data = curl_exec($curl); //封闭URL请求 curl_close($curl); //显现取得的数据 print_r($data);
test.php:
<?php $title = $_REQUEST['title']; $content = $_REQUEST['content']; error_log($title."\n",3,'error.log'); error_log($content."\n",3,'error.log'); echo 'ok';
3、PHP cURL 函数:
以下包括了PHP cURL函数列表:
函数 | 形貌 |
---|---|
curl_close() | 封闭一个cURL会话。 |
curl_copy_handle() | 复制一个cURL句柄和它的一切选项。 |
curl_errno() | 返回末了一次的毛病号。 |
curl_error() | 返回一个庇护当前会话近来一次毛病的字符串。 |
curl_escape() | 返回转义字符串,对给定的字符串举行URL编码。 |
curl_exec() | 实行一个cURL会话。 |
curl_file_create() | 建立一个 CURLFile 对象。 |
curl_getinfo() | 猎取一个cURL衔接资本句柄的信息。 |
curl_init() | 初始化一个cURL会话。 |
curl_multi_add_handle() | 向curl批处置惩罚会话中增加零丁的curl句柄。 |
curl_multi_close() | 封闭一组cURL句柄。 |
curl_multi_exec() | 运转当前 cURL 句柄的子衔接。 |
curl_multi_getcontent() | 假如设置了CURLOPT_RETURNTRANSFER,则返回猎取的输出的文本流。 |
curl_multi_info_read() | 猎取当前剖析的cURL的相干传输信息。 |
curl_multi_init() | 返回一个新cURL批处置惩罚句柄。 |
curl_multi_remove_handle() | 移除curl批处置惩罚句柄资本中的某个句柄资本。 |
curl_multi_select() | 守候一切cURL批处置惩罚中的运动衔接。 |
curl_multi_setopt() | 设置一个批处置惩罚cURL传输选项。 |
curl_multi_strerror() | 返回形貌毛病码的字符串文本。 |
curl_pause() | 停息及恢复衔接。 |
curl_reset() | 重置libcurl的会话句柄的一切选项。 |
curl_setopt_array() | 为cURL传输会话批量设置选项。 |
curl_setopt() | 设置一个cURL传输选项。 |
curl_share_close() | 封闭cURL同享句柄。 |
curl_share_init() | 初始化cURL同享句柄。 |
curl_share_setopt() | 设置一个同享句柄的cURL传输选项。 |
curl_strerror() | 返回毛病代码的字符串形貌。 |
curl_unescape() | 解码URL编码后的字符串。 |
curl_version() | 猎取cURL版本信息。 |
胜利时返回 TRUE, 或许在失利时返回 FALSE。
一些状况代码
1xx:请求收到,继承处置惩罚
2xx:操纵胜利收到,剖析、接收
3xx:完成此请求必需进一步处置惩罚
4xx:请求包括一个毛病语法或不能完成
5xx:效劳器实行一个完整有用请求失利
100——客户必需继承发出请求
101——客户请求效劳器依据请求转换HTTP协定版本
200——生意业务胜利
201——提醒晓得新文件的URL
202——接收和处置惩罚、但处置惩罚未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——效劳器完成了请求,用户代办必需复位当前已阅读过的文件
206——效劳器已完成了部份用户的GET请求
300——请求的资本可在多处取得
301——删除请求数据
302——在其他地点发明了请求数据
303——发起客户接见其他URL或接见体式格局
304——客户端已实行了GET,但文件未变化
305——请求的资本必需从效劳器指定的地点取得
306——前一版本HTTP中运用的代码,现行版本中不再运用
307——说明请求的资本临时性删除
400——毛病请求,如语法毛病
401——请求受权失利
402——保存有用ChargeTo头相应
403——请求不许可
404——没有发明文件、查询或URl
405——用户在Request-Line字段定义的要领不许可
406——依据用户发送的Accept拖,请求资本不可接见
407——相似401,用户必需首先在代办效劳器上取得受权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资本状况,请求不能完成
410——效劳器上不再有此资本且无进一步的参考地点
411——效劳器谢绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中毛病
413——请求的资本大于效劳器许可的大小
414——请求的资本URL善于效劳器许可的长度
415——请求资本不支撑请求项目花样
416——请求中包括Range请求头字段,在当前请求资本范围内没有range指导值,请求
也不包括If-Range请求头字段
417——效劳器不满足请求Expect头字段指定的期望值,假如是代办效劳器,多是下一级效劳器不能满足请求
500——效劳器发作内部毛病
501——效劳器不支撑请求的函数
502——效劳器临时不可用,偶然是为了防备发作体系过载
503——效劳器过载或停息维修
504——关隘过载,效劳器运用另一个关隘或效劳来相应用户,守候时间设定值较长
505——效劳器不支撑或谢绝支请求头中指定的HTTP版本
以上就是php curl发送请求细致教程的细致内容,更多请关注ki4网别的相干文章!