PHP中的数据传输神器curl

  [复制链接]

2118

主题

2133

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
37890
admin 发表于 2021-5-29 13:47:20
25519 101

- J' J# m, W4 R1 m课程目录
( o; S% L6 ^' j, j. J什么是cURL?/ j! u7 u" ]2 g1 Y! [

. B% u* ?+ A, Q' D5 ?6 N官方是这样解释的:使用URL语法传输数据的命令行工具。 0 p. ]& u* e( h4 b8 N7 W

/ Y6 Z( G8 i! }7 rcURL:我不生产资源,我只是资源的搬运工。。。 $ l, h2 O) k  }- f, v
+ V4 n- Q* _% Y# r
这里写图片描述
4 t% x9 T$ o0 x) \' g8 A
% Z8 A, e- m: D  f% k5 p8 F0 R- O  G$ D* F4 X8 H
cURL的使用场景
" z* X% W3 u% s& \3 W0 g
& l8 ]6 S  B/ u" H" }
& Q# v5 _2 W7 {1 e; {+ a网页资源
0 i7 r5 |  D; R& f: ~/ E! }* q3 {
; [' R! I4 |5 M& t0 K( I编写网页爬虫
( @- G1 V% [1 q0 W
1 v- Z& {) @4 s- B6 d
- A* ~/ ^6 }, I# d" V. l6 ~7 p6 K$ e6 J, j1 V! F' Z$ I
WebService数据接口资源9 X3 G$ u' l& Y9 A3 S
6 c6 {1 U) u! [3 A. {. N
动态获取接口数据,比如天气,号码归属地等等6 G& J* C. ?! q! ~

( V' }7 x2 a, o" A5 s0 s5 x8 M+ H# \) N) S& ^
0 \( R* l/ S/ j3 u' B. [/ _
FTP服务器里面的文件资源: l: g8 P/ H2 X! W3 t5 e

8 D$ M8 l4 {, R6 b% _) s下载FTP服务器里面的文件
, V* _$ f" O# h6 t- U
- T1 w! x, k/ t; S$ |/ ~  i; x
+ j, Q$ E* k# f9 T4 M( v
9 L- v" U. F  m$ I* l8 B1 j其他资源- o& S7 I0 s! `0 U  q' K1 v; G: r
2 F. `2 L* f; ?( y  m. t" ~2 K
所有网络上的资源都可以用cURL访问和下载到3 z& W  }3 f1 f; ^/ Y
% w& A* F, T% z9 J% ~5 O

1 H$ r5 Z- @" w& t, C
, K4 v3 Z3 q$ x5 B6 k, x7 M# {% J. x$ Y! T9 _( |+ C' m

; y9 M. ^. F: S       
1 a6 B! y: E6 h0 `+ q6 q0 o检查PHP是否可以使用cURL
( p) a( `7 `. R" a; r( N2 d8 u! H9 b6 V- J  x

: F$ P2 m& v( L& K( x; k/ [9 y
6 r! M: S: n; v: y0 T- z这里写图片描述) e) m4 A  u1 Z* y
3 Z, F5 L3 Y. w1 R
# ~6 L, `3 h) W  C
可以看到在我的Linux下是支持cURL的
3 i. _0 V# b% h. u' C5 E2 b
. i5 y8 g5 b) P0 j' O( L1 b
& {' X6 ?3 I# @  R9 G$ y$ _3 F% b在PHP中使用cURL* w: ?7 X; u7 Z4 I) D
) u* S  @* G) X# X  T
这里写图片描述
, o$ C! a9 U2 G" E" b
4 M4 P* @, z4 b! r* {5 @: g: w' i2 r  }6 D6 b/ |
5 z9 P1 U! D. w* P2 n
cURL实战
7 B# P; `. _) U) A
9 E  |, W% c; F- R4 Y
: i: Q3 g& D/ c( G. a$ w- m' K用cURL做一个简单的网页爬虫
# |& i9 g; R6 b8 [+ N: e
! P3 Y5 h* G" K8 ^4 E5 }0 ~* C6 H( H用cURL获取天气信息* y) f; E* Y0 w

; b$ b- m7 j) s- R% s% }用cURL操作FTP服务器中的数据
" c2 J( M. j' D) l% k1 U* |. a% h4 Z+ }0 J+ n0 }
用cURL访问HTTPS资源
- d5 ~( `( y8 K# {! g+ H3 |9 X, `$ t- S+ H& g2 ?

' D! U8 o  h3 V3 B+ n6 r1.网页爬虫
/ W* U* R3 g% h3 E2 H( _4 ?) B3 a+ \4 g. S9 a

' o2 n) t& V4 ]  @9 z) d抓取百度的首页
) V4 o  e/ G+ P, l8 z5 }' z7 Y9 \. B3 C  v) Y. \: i% {; ?" ?5 c

# }" n- F/ d% d<?php- X; t1 c$ s: o  w% p
//初始化
1 [, R+ \% d. G) j/ ]  {$curl = curl_init("http://www.baidu.com");8 _0 x6 n1 M3 X. _
//进行抓取
* T& e# i* d" r0 G. ocurl_exec($curl);" r  ?6 n/ p' Y6 p
//关闭- D' H" Q: X0 O
curl_close($curl);
# u8 ~1 Y  t" i1 E  E0 u?>5 Y$ h/ j, m. D7 ]4 f

5 W8 E! Q4 w( m3 p  |5 j执行这段程序看看会发生什么吧!没错,打开这个文件就打印出了百度的首页! ' Y* X1 j0 |# ~
( W- x; C; C' ?; L+ ^
这里写图片描述% ^* ^3 o( P0 e/ e( q' Y/ b( V

, E) r* W7 m7 C1 _9 ^0 E  S/ J1 V# T. L3 B
& w6 i' @: l6 @. b& D+ F9 e
       
) E, `1 h1 @' d* k( y! v4 A4 @那么问题来了!如果我想把取过来的网页中百度两个字替换为牛逼该怎么做呢?
1 O* t+ L- s5 d6 b6 Q, X+ ^3 i9 d: A% J7 _, U& o) a/ F- N
" W, |! y! G: X5 e
4 h/ o0 N) [9 x2 U
<?php
0 E3 o0 ~, Q$ }$ v- w2 z; x$ Z# D$ h//初始化curl,但不传入网页信息, W* l8 t  {. E- {' I. _
$curlobj = curl_init();
. z7 z& |$ f4 v9 s//传入网页信息
) t6 Z! P7 h" g5 z9 }curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");
; B, r8 `! l/ h5 P" |! N//设置获取之后先不打印出获取到的值,而是保存到一个变量里$ D* r; T* O  Z/ ~
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);
+ @; E, d$ _% a: U+ s. G$output = curl_exec($curlobj);1 a1 z& r, n* U* [! s
//关闭
9 y# I9 y( X# acurl_close();
$ n$ g, J5 @2 S  |, |: W$ A# Q) o( i//对网页内容进行替换
% |) B  j+ C6 d% [! M. wecho str_replace("百度", "牛逼", $output);
6 b: ]% @: _  X( N4 ??># Q! D6 A; E) N9 G' A+ T. n

$ ~1 d4 k2 G1 Z2 R$ m0 a0 s  r$ d- t# }8 Q- c

, V6 j! R) K- B+ |执行这个文件看一下会发生什么吧!
, U5 @! F* N; q3 E* o
8 v9 E& {9 E( m# c
& L; j( Y4 T0 a0 p+ [2.获取天气信息
+ n" e$ }0 x. l- A7 q% M" s3 ]& R3 D( ]; u; o( e; l

8 q5 i! w0 d+ }" m" e因为Webservice原因可能导致多次访问后不可用,这里说的只是一种方法,也可是使用百度天气api来获取天气信息哦。 4 T% I6 Q$ }2 J. [6 B( [

! k. H/ n; C' B# W3 Y代码如下:' g. _# g& D& s$ J1 o5 ?# j

; i7 \( \; X1 c1 i4 k& k% V, C3 n+ g& g
<?php
6 m1 m$ a( z1 t( h; y- [, g
+ T' U) P$ D2 h( A$data = 'theCityName=北京';
$ Q- n( H7 U4 D  ?) r$ H" E0 D& X$curlobj = curl_init();
# ?6 [6 u+ m# ?curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
) s/ K9 n5 a# Y  B6 xcurl_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 y7 Z. t4 c' k
curl_setopt($curlobj, CURLOPT_HEADER, 0);. {2 u; Z/ E# t6 ^1 t
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);( ~1 e! E) o% V3 [# U; ^
curl_setopt($curlobj, CURLOPT_POST, 1);! o; V* m' ~9 }% X
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
; b" _% a" M: Q9 U1 r  dcurl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;charset=utf-8",
7 ]& t' c/ s1 S! J3 `3 J1 l    "Content-length: ".strlen($data)
3 S% Q1 I3 U6 F. ?3 k8 C: [$ l6 G    ));
" n; O! d1 }: |7 d$rtn = curl_exec($curlobj);
; T& Q7 r: D  r5 n8 F( J+ y7 M8 C& yif(!curl_errno($curlobj)) {
" y- X5 @/ o& A/ g    $xml = simplexml_load_string($rtn);
7 g5 ~8 h: x6 C2 U/ u4 z}else {, V' U! w( l! i3 g6 S* q
    echo 'Curl error: '.curl_error($curlobj);9 U7 b  L+ H$ O3 ]6 d6 F! s6 Z
}
( h7 a) q5 [# Z, Xvar_dump($xml);
  P( L) Y4 F1 M8 P" tcurl_close($curlobj);
  w  z# }3 S! F?>/ U% e% P' D  g8 m
! d; _  W2 t- D) a0 y
资源存放>百度网盘
6 k/ x7 N  k8 _. D  S1 r+ f0 G' X( t, G% ^
下载地址
$ e: B( b. n, z
游客,如果您要查看本帖隐藏内容请回复

1 k3 s% d+ F: Z9 l, T, p) I: UVIP会员全站免金币
' z# k- ]5 Q2 |$ \; lIT直通车已为全国各地程序员提供上千G课程资源6 p+ d# ]5 @9 s! m) r4 ?7 ?
如您需要购买本站VIP会员,请点击「开通VIP」享受全站资源免金币无限制下载!
' T" B3 |0 k2 {6 P+ q/ N2 s6 R, G
2 K" p% ?! D' _. s. R# u: H失效反馈
$ B6 v. g; |, q- bIT直通车所有资源都存放在自己注册的百度网盘,失效可修复,确保持续可用: w7 D8 T$ o# A+ @  q
如您需要的资源链接提示失效,请尽情反馈给我们,将在收到反馈后尽快修复「点击反馈" V: y7 [" B  I1 Y8 C
; T+ F& ~4 b9 C5 g
获得帮助
" |$ d3 T! V: c: P需要帮助吗?点击网站右侧在线客服,7X12小时在线!
! Q: A# E* H2 i, y0 K- D6 j# n: A: g( E7 I8 d
回复

使用道具 举报

阿豆学长长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会员全站免金币下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

遇到问题联系客服

安全保证百分百处理 

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

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

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

更多课程

由于QQ吞消息严重,网站启用邮件对接VIP会员服务,有事请发邮件到 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

返回顶部 返回列表