在PHP开发中经常会遇到各种问题,就比如PHP中curl返回flase的情况应该如何解决,就这个问题本文给大家详细解答一下。
首先来看一个封装的curl函数
function request_post($url = ‘’, KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (empty(url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
c
u
r
l
=
c
u
r
l
i
n
i
t
(
)
;
/
/
初
始
化
c
u
r
l
c
u
r
l
s
e
t
o
p
t
(
curl = curl_init();//初始化curl curl_setopt(
curl=curlinit();//初始化curlcurlsetopt(curl, CURLOPT_URL,
p
o
s
t
U
r
l
)
;
/
/
抓
取
指
定
网
页
c
u
r
l
s
e
t
o
p
t
(
postUrl);//抓取指定网页 curl_setopt(
postUrl);//抓取指定网页curlsetopt(curl, CURLOPT_HEADER, 0);//设置header
curl_setopt(
c
u
r
l
,
C
U
R
L
O
P
T
R
E
T
U
R
N
T
R
A
N
S
F
E
R
,
1
)
;
/
/
要
求
结
果
为
字
符
串
且
输
出
到
屏
幕
上
c
u
r
l
s
e
t
o
p
t
(
curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 curl_setopt(
curl,CURLOPTRETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上curlsetopt(curl, CURLOPT_POST, 1);//post提交方式
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);//提交的参数
d
a
t
a
=
c
u
r
l
e
x
e
c
(
data = curl_exec(
data=curlexec(curl);//运行curl
curl_close($curl);
return KaTeX parse error: Expected 'EOF', got '}' at position 7: data; }̲ 调用…curl)获取错误也是 string(0) “” 空字符串。
最后发现自己调用的api的接口地址是ssl协议的,然后加上下面两个就可以了
curl_setopt(
c
u
r
l
,
C
U
R
L
O
P
T
S
S
L
V
E
R
I
F
Y
P
E
E
R
,
f
a
l
s
e
)
;
c
u
r
l
s
e
t
o
p
t
(
curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt(
curl,CURLOPTSSLVERIFYPEER,false);curlsetopt(curl, CURLOPT_SSL_VERIFYHOST, false);
如果curl请求的地址中含有空格也会返回false的,这块也要格外注意。 之前还遇到过一个返回false打印curl_error(KaTeX parse error: Double subscript at position 166: …_HTTP_VERSION_1_̲0 (强制使用 HTTP/1.…curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
文章来自:https://www.itjmd.com/news/show-5303.html
巧妙解决PHP中curl返回false值的方法
最新推荐文章于 2024-08-22 01:00:00 发布