curl_exec(curl_exec phar)
php?中?怎么让curl_exec?以数组形式返回
可以将他返回的内容赋值给一个
变量
。只需再
前面
加上,curl_setopt($ch,CUROPT_RETURNTRANSFER,1);就可以将返回结果赋值给变量了。比如,$r=curl_exec($ch);这时返回的结果全部包含再$r中,想
什么时候
输出什么时候输出,如果不准备要他的结果,那么就将前面的1换成0
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)
以上的传递方式在某些状况下很好用,譬如说,没有设计完整的会员申请系统,就可以利用上面这些程式码,做一个自动注册申请机
curl_exec返回的是什么类型?
curl_exec返回的是json类型的数据,接收返回的结果后再转换成正常的数据。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。