curl_exec,curl_exec phar

http://www.itjxue.com  2023-01-23 18:46  来源:未知  点击次数: 

php 中 怎么让curl_exec 以数组形式返回

可以先看看PHP中的 curl_exec函数的说明

(PHP 4 = 4.0.2, PHP 5)

curl_exec?—?执行一个cURL会话

说明

mixed?curl_exec?(?resource?$ch?)

执行给定的cURL会话。

这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。

参数

ch

由?curl_init()?返回的 cURL 句柄。

返回值

成功时返回?TRUE, 或者在失败时返回?FALSE。 然而,如果?CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回?FALSE?。

我前两天刚好用到过的两种情况

//从返回结果中获取指定的值

$res=curl_exec($ch);

$pa?=?'%ul?class="ul1"li本站主数据:(.*?)/li%si';

preg_match($pa,$res,$r);

return??$r[1];

//第二种?的返回结果是以json形式。

$res=json_decode(curl_exec($ch),true);

print_r($res);

php curl_exec,服务器上开启了这个功能,但是提示无法加载

提示页面无法加载不是curl没有打开,而是代码中有错,如果是curl没有打开的话会报curl_exec这个函数找不到等类似的错误,而不是无法加载的500错误。

你看看状态码,如果是500找找代码哪里有错。

PHP中的curl_exec

curl_exec

(PHP 4 = 4.0.2, PHP 5) curl_exec?—?执行一个cURL会话

可以参考官方网站范例:

你要用CURL,就跟Session一样,要先初始化 curl_init(),不然PHP部会知道该怎麼运作。初始化完成之後就要开始设定参数,就像是要不要显示出来。当你参数设定完毕,就要开始执行这个CURL。最後就要关闭这个CURL。这就算是一个简单的CURL运用,当然还有更多变化。

实际例子:

?php

//?创建一个cURL资源

$ch?=?curl_init();

//?设置URL和相应的选项

curl_setopt($ch,?CURLOPT_URL,?"

);

curl_setopt($ch,?CURLOPT_HEADER,?0);

//?抓取URL并把它传递给浏览器

curl_exec($ch);

//?关闭cURL资源,并且释放系统资源

curl_close($ch);

?

如使用mysql一样,首先,我们必须先建立一个「curl」的连线,也因此,必须使用到 curl_init() 这个函式。而为了怕建立连线忘了关闭。因此,必须先写好关闭的函式,curl_close($ch)。

不过大部分HTML标签都可以抓下来,并且显示,可是有部分可能与资料加密性或是转址的部分,就无法正常显示。

/?建立CURL连线

$ch?=?curl_init();

//?设定撷取的URL网址

curl_setopt($ch,?CURLOPT_URL,?"

);

curl_setopt($ch,?CURLOPT_HEADER,?false);

//将curl_exec()获取的讯息以文件流的形式返回,而不是直接输出。

curl_setopt($ch,?CURLOPT_RETURNTRANSFER,1);

//?执行

$temp=curl_exec($ch);

//?关闭CURL连线

curl_close($ch)

加上curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);之後,他会将curl_exec()获取的讯息以文件流的形式返回传给$temp,而不是直接输出。如果要显示出画面的话就加上 echo $temp;就可以了。

下面先分享一个比较常用的,传递参数的部分。

简易的使用语法(GET):

//?建立CURL连线

$ch?=?curl_init();

//?设定撷取的URL网址

curl_setopt($ch,?CURLOPT_URL,?"

);

curl_setopt($ch,?CURLOPT_HEADER,?false);

//将curl_exec()获取的讯息以文件流的形式返回,而不是直接输出。

curl_setopt($ch,?CURLOPT_RETURNTRANSFER,1);

//?执行

$temp=curl_exec($ch);

//?关闭CURL连线

curl_close($ch)

Get参数可以直接在网址传递例如网址後面加的?SomeVar=test,但是一旦资料量很大,用POST送还是比较适合。

简易的使用语法(POST):

//?建立CURL连线

$ch?=?curl_init();

//?设定撷取的URL网址

curl_setopt($ch,?CURLOPT_URL,?"

);

curl_setopt($ch,?CURLOPT_HEADER,?false);

//将curl_exec()获取的讯息以文件流的形式返回,而不是直接输出。

curl_setopt($ch,?CURLOPT_RETURNTRANSFER,1);

//设定要传的?变数A=值A??变数B=值B?(中间要用符号串接)

$PostData?=?"a=abcb=def";

//设定CURLOPT_POST?为?1或true,表示要用POST方式传递

curl_setopt($ch,?CURLOPT_POST,?1);?

//CURLOPT_POSTFIELDS?後面则是要传接的POST资料。

curl_setopt($ch,?CURLOPT_POSTFIELDS,?$PostData);

//?执行

$temp=curl_exec($ch);

//?关闭CURL连线

curl_close($ch)

以上的传递方式在某些状况下很好用,譬如说,没有设计完整的会员申请系统,就可以利用上面这些程式码,做一个自动注册申请机

(责任编辑:IT教学网)

更多

相关淘宝营销文章

推荐淘宝营销文章