PHP中的数据传输神器curl

  [复制链接]

2100

主题

2114

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36500
admin 发表于 2021-5-29 13:47:20
25334 100

# a% w4 d, N; o0 K. @课程目录9 r8 k) F7 K# d* a5 i( B6 g
什么是cURL?- i4 A) \; H; W1 ~
, z7 c. q" P5 r: |
官方是这样解释的:使用URL语法传输数据的命令行工具。
$ z) B" o$ J6 W) @5 w
- F8 T5 e3 r2 h: scURL:我不生产资源,我只是资源的搬运工。。。 7 l" U3 y+ [0 N) ]5 m  _8 |0 m3 F
( F, H5 i" L, U4 J" q
这里写图片描述& M& R/ g- \8 G/ J4 X! \$ \) o

3 n6 ]6 l( n: H: {( }
, R/ S* r& L# W+ A- g) QcURL的使用场景$ E( z" ]4 J/ G% P% _6 t; Z
  y0 c, o/ w. X  ]5 L
) A4 U; Z$ F& t+ Z; t3 O
网页资源5 g6 _# Q- B( z9 ]1 |% h  o

/ |( T' A+ a" m) }4 f编写网页爬虫
9 Y/ Z9 ~* T4 G5 x. |
+ Z# ?+ `1 f6 K3 |( R8 o
- @0 m; y2 q' v4 M) o. l6 P  d! L% V, v) r6 i: x+ \+ m
WebService数据接口资源* O+ Q  l6 @1 M. M0 d

+ Q" J) X4 {  x% U动态获取接口数据,比如天气,号码归属地等等6 e* X: F& w% h( n) g2 Q

, [( [) h1 `' p; \* v5 C! {/ y) r0 e% S$ N) L3 W

6 H1 ~) @* L! m* D: y" G0 y8 d7 ~FTP服务器里面的文件资源
2 c4 n! G( W; H1 ^% D, V* t# _" F7 C1 _( z
下载FTP服务器里面的文件
0 g) h/ k, b: D7 m  P3 B
" {' [# t( y6 F* P1 C% K5 P* [8 n: \1 J% I7 t( i

" O2 O. Z# q7 R其他资源
' v" {6 @6 u3 j, I; z# p9 y4 W% A' h
所有网络上的资源都可以用cURL访问和下载到
% `9 p7 G/ z" c+ }" Q
" m: a6 @) o' k$ o; Y9 @3 [2 |; g/ H8 s4 i8 F0 m8 T) u. W) n" e
9 b- u) Q+ h( w5 _& `

, R, K, g0 G7 ]* |, Q
' ]5 w  x3 l) S       
; O# E1 j" w1 ^- O) ^/ F0 K$ f检查PHP是否可以使用cURL
' ]4 \& b! e* w; n  l" n( c. J" S. K

5 f; ~) P5 F/ J) K) w2 B0 I+ P4 y0 R
这里写图片描述
" D) |4 o5 S5 z' n% r# d* h( y) E- ~' I/ o; C8 Y( p( C8 `) L

+ L' e, F0 Y' n' N! d7 \可以看到在我的Linux下是支持cURL的
& O5 E, Y9 T' ~$ F. B6 K0 Z; e( D- V+ g0 q1 u# P. u& L
( @. g5 S& r& t$ j7 B1 _' c$ T- ^5 T
在PHP中使用cURL
. m7 |" ], ~8 f9 c6 P8 E
2 u4 Q0 @: R; a$ r* x% ]( M2 k这里写图片描述; d4 \- u' Q4 s- q( l* @
2 }0 D. x! q8 v' c5 Z
' ]+ f" ~8 L0 f. c( Q+ Q

# m2 ]" V( w3 Y+ f! R% T/ ucURL实战
% k# {# I! R. F) N" R, I) ~. N
4 t2 @7 h8 S2 j
; ]+ F" A5 w# P  M/ e. q用cURL做一个简单的网页爬虫
+ k- K. F: v) I! [* @6 s4 g9 T/ C# b3 |0 ?6 {) X4 y2 x
用cURL获取天气信息
  N: m/ Z# ~5 A7 x8 Y, H9 \* K8 I: [. m5 H6 U5 [2 |0 P
用cURL操作FTP服务器中的数据
/ t3 G1 `! R$ B2 O; G3 b7 o
: o/ x1 \1 ^$ k6 ^" M' G5 Q8 V# Z用cURL访问HTTPS资源" v' h0 d. v* @3 h* F
1 q) O% w# h6 P! o4 {' [* `
. _% f1 A/ |$ f. a
1.网页爬虫
; s# x5 p3 D- c+ V4 F! i! t, @% {& w* G" s' H) @# Z4 P
' m, N2 W6 W9 r+ d
抓取百度的首页
) o0 @7 v% g/ x* z9 B( K; e8 o6 |3 s4 B9 {8 ?( i& B
/ F& ]2 \1 k2 d7 p0 L! ]
<?php
! z0 X* o. o6 i# S//初始化
1 A; I: v8 l, k$curl = curl_init("http://www.baidu.com");0 h3 `! L7 ~6 s3 A
//进行抓取% r7 W# _5 i. X4 u
curl_exec($curl);
/ x/ `" }2 y3 G; G. k//关闭
1 o2 b  l0 t9 E6 w! Bcurl_close($curl);
& [6 p' y& U: B4 q+ o9 e" }/ w?>( z# H; l5 [1 y& `8 {8 s: _4 P

. ^  R, C; D' E& i7 W9 ~执行这段程序看看会发生什么吧!没错,打开这个文件就打印出了百度的首页!
* z) e6 x9 F2 `) @# B4 t$ X" K+ T! Z* `8 w) N; t. E
这里写图片描述
  w0 Q- H% U# z+ B
/ V2 }1 e" S0 _. Q( i+ n! f) _+ h% ^+ f. h" [5 t3 E8 o+ C' n. I  m
% e6 m* t4 r1 N& W  @  J( G
       
& ?) [9 Q1 y' F3 D那么问题来了!如果我想把取过来的网页中百度两个字替换为牛逼该怎么做呢?
* b4 A; d3 z$ q% F; w& u9 N2 H  D: u7 P$ n  w" `, N6 J1 {
* @2 P1 R- W1 n, \5 r" C

6 y/ J; B* q8 f2 Z0 ^+ O8 ?<?php
" z, @1 ^% t8 ~( |- \//初始化curl,但不传入网页信息% S! C; k3 s6 ~9 H
$curlobj = curl_init();: H  v& m. X, \/ g
//传入网页信息3 w8 s0 ^  ?( N" G6 W2 B8 F
curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");
) o! D- N4 z, Q//设置获取之后先不打印出获取到的值,而是保存到一个变量里. {$ U1 v: R0 j6 Z5 F5 D* _
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);, v2 C; i" |/ S6 s7 Z* s: D
$output = curl_exec($curlobj);- x/ z5 ^% k# s
//关闭. m# G1 Q# G- e# n8 A5 r' V2 Q1 `) ]
curl_close();: W" ^; d# q! A$ n
//对网页内容进行替换- i! ^( F+ ]8 x0 ~, A$ r4 G9 s+ Z
echo str_replace("百度", "牛逼", $output);9 h6 \$ n6 r: L- ?% H
?>: M$ K  z4 O$ U+ v, a! |* f( M

9 Z9 c0 f  Z2 P/ ?& o) E7 n& X, F6 `. O0 b4 X/ U& t

/ L  K6 y+ L$ z' V+ ^执行这个文件看一下会发生什么吧!" D2 s6 x% d1 S% q& t  i8 z

9 O# W5 d" B' I8 P; i; d! H" \
* Z: Q" R7 W3 u$ w( |" X, K' l2.获取天气信息: H" ~" d" |; A. d, u. |. y& R

1 D( V6 K8 U; i, g0 N9 n8 o0 x) N( U( ?4 N7 g
因为Webservice原因可能导致多次访问后不可用,这里说的只是一种方法,也可是使用百度天气api来获取天气信息哦。 # ~" i( a. u6 u- N6 Q8 @1 x
- L  v' p: n- n2 R  K
代码如下:3 k. L& i. [/ i. x

! s+ D# k2 ^. ~( T$ f
) q5 o& W. r- ?3 Y<?php 5 d) x& |5 B. ]4 |! P; r

, N! L4 s8 x( {1 y& Q$data = 'theCityName=北京';
3 }1 q, Q8 J1 U9 {# b3 d$curlobj = curl_init();
+ x( ~  h2 [+ Bcurl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");- A) ^; z# H. r! [# E
curl_setopt($curlobj, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36');
3 Y2 u: f& Y$ L$ Lcurl_setopt($curlobj, CURLOPT_HEADER, 0);2 ^, ]  A6 I1 ]$ L3 S1 V" j) ?
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);; ^) |: V$ {: B, y$ y: x/ \
curl_setopt($curlobj, CURLOPT_POST, 1);
+ c8 Q7 }# y, K. b9 T& A3 O# S# v5 Vcurl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);7 l! q! S+ ?5 M8 q
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;charset=utf-8",% t7 v. D0 C- C* O, e3 K8 ?7 O" ~
    "Content-length: ".strlen($data)
9 v$ Y/ I5 N; W$ ?& D0 m$ d    ));
: o  C$ q" n- a$rtn = curl_exec($curlobj);
# U/ z4 n$ j8 G1 g' a2 Eif(!curl_errno($curlobj)) {
8 i* I2 V$ Z/ P# I. b. ?1 F    $xml = simplexml_load_string($rtn);) s- [; @) L! g6 z
}else {& W8 t' s# s% a' j5 W& p  W
    echo 'Curl error: '.curl_error($curlobj);2 h% Y$ F+ S& ^) v
}% W/ r$ T$ E8 R9 J$ n
var_dump($xml);
0 |( D+ P3 ]  Q9 M# qcurl_close($curlobj);
5 Q! q+ [% R; Z9 s?>
7 j, C1 P. I4 ?% y
3 [' Y  d- T6 d* f2 k; ]资源存放>百度网盘
$ P8 I: [7 y5 A0 r3 i9 x; T8 c" Y4 l6 S( ^, ?' z6 u
下载地址
2 y, N6 p" y3 E
游客,如果您要查看本帖隐藏内容请回复

0 b3 z+ i" M7 x2 K4 U2 S) p1 z' jVIP会员全站免金币
' U4 M- w9 }2 C7 z6 G. t" j, YIT直通车已为全国各地程序员提供上千G课程资源  _' P+ X0 x, d. a) b2 `
如您需要购买本站VIP会员,请点击「开通VIP」享受全站资源免金币无限制下载!  I8 q2 u4 m" E, i; }  w) t( N

( U  [. }; E$ v" T/ z失效反馈( E& s. S4 d0 `* o
IT直通车所有资源都存放在自己注册的百度网盘,失效可修复,确保持续可用8 F4 S: D; Q& }. p. M
如您需要的资源链接提示失效,请尽情反馈给我们,将在收到反馈后尽快修复「点击反馈4 j, N4 o& G" x5 C

7 B) h, W% F' Q9 ?8 d8 N1 w获得帮助
! U/ |# c% v# I/ y  [) q$ H需要帮助吗?点击网站右侧在线客服,7X12小时在线!# W/ }1 s- S5 k, d5 T5 t6 a

* s# Q& `) K/ G4 _# `  W
回复

使用道具 举报

阿豆学长长ov 发表于 2021-5-29 13:50:11
<<HP中的数据传输神器curl>>[复制链接]
回复

使用道具 举报

湿湿二 发表于 2021-6-3 09:49:44
ttttttttttttt
回复

使用道具 举报

什么大师特 发表于 2021-6-10 15:20:49
ttttttttttttt
回复

使用道具 举报

HY107 发表于 2021-6-12 13:04:59 来自手机
终于找到了,哈哈
回复

使用道具 举报

干将发硎鞘 发表于 2021-6-14 17:33:29
太多需要的课程了
回复

使用道具 举报

立郎 发表于 2021-6-14 20:46:57
谢谢大哥
回复

使用道具 举报

爱无声爱留痕列 发表于 2021-6-19 13:31:36 来自手机
祝IT直通车越办越好
回复

使用道具 举报

忆清静丫 发表于 2021-6-20 13:05:58
6666666666666
回复

使用道具 举报

简0 发表于 2021-6-21 14:30:14
2222222222222222222
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 AD:IT直通车VIP会员全站免金币下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

遇到问题联系客服

安全保证百分百处理 

如您充值或开通会员后资源无法下载

本站有售后服务,联系客服修复即可

[联系客服]-[会员充值]

更多课程

网站启用邮件对接VIP会员服务,不再使用QQ这种低效率工具,有事请发邮件到 wangkefuwu@outlook.com

关于本站

VIP介绍 加入我们

售后服务

QQ客服 Email邮件

网站声明

IT直通车(www.itztc.com)是一个IT视频教程、软件、书籍资源整合分享平台
站内所有资源均来自于互联网,版权归属原资源作者,如无意侵犯您的版权,请联系我们删除处理。

Archiver|手机版|小黑屋|IT学习网 |网站地图

Powered by Discuz! X3.4  © 2001-2013 IT直通车 ICP证:粤ICP备13026616号 增值电信业务经营许可证:粤B2-20140196

返回顶部 返回列表