PHP跨项目传递数据 curl_init()使用说明

PHP的curl扩展库:

 1.作用:

可以获取其他站点的内容。跨站点传递数据(在webservice很有用)(刚刚接触只是个人观点!)

2.使用方法:

(1)curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
(2)curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
(3)curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

(4)curl_setopt ()为一个curl设置会话参数

(5)curl_setopt_array () 以数组的形式为一个curl设置会话参数


eg:test.1  phpPHP跨项目传递数据 curl_init()使用说明_第1张图片

test2.php

PHP跨项目传递数据 curl_init()使用说明_第2张图片

说明:如上代码test2.php可以通过$_POST获取test1.php  post 过来的数据,而运行test1.php 页面又可获取到test2.php 输出的数据。

如果test1.php和test2.php不在同一个域名下,它依然可以。所以对于跨域是特别有用的。



curl设置会话参数:(以下几个参数开源于:http://www.jb51.net/article/25193.htm)

CURLOPT_RETURNTRANSFER 设为1 希望获得内容但不输出

 CURLOPT_FOLLOWLOCATION :当你把这个参数设置为true时,curl会根据任何重定向命令更深层次的获取转向路径,举个例子:当你尝试获取一个PHP的页面,然后这个PHP的页面中有一段跳转代码 ,curl将从http://new_url获取内容,而不是返回跳转代码。(和这个参数有关的两个选项是CURLOPT_MAXREDIRS和CURLOPT_AUTOREFERER . 

CURLOPT_MAXREDIRS选项允许你定义跳转请求的最大次数,超过了这个次数将不再获取其内容。

CURLOPT_AUTOREFERER 设置为true时,curl会自动添加Referer header在每一个跳转链接,可能它不是很重要,但是在一定的案例中却非常的有用。 

CURLOPT_POST,这是一个非常有用的功能,因为它可以让您这样做POST请求,而不是GET请求,这实际上意味着你可以提交 其他形式的页面,无须其实在表单中填入。(上面的例子已经说明)

CURLOPT_CONNECTTIMEOUT 通常用来设置curl尝试请求链接的时间,这是一个非常重要的选项,如果你把这段时间设置的太短了,可能会导致curl请求失败。 但是如果你把它设置的时间太长了,可能PHP脚本将死掉。

CURLOPT_TIMEOUT,这是用来设置curl允许执行的时间需求。如果您设置这一个很小的值,它可能会导下载的网页上是不完整的,因为他们需要一段时间才能下载。 

 CURLOPT_USERAGENT,它允许你自定义请求是的客户端名称,比如webspilder或是IE6.0.示例代码如下:


函数curl_getinfo()可以使得我们获取接受页面各种信息


curl_setopt($ch, CURLOPT_USERAGENT, ‘My custom web spider/0.1′); 

$ch = curl_init(); 
// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/does/not/exist”); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// grab URL 
$output = curl_exec($ch); 
// Get response code 
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
// Not found? 
if ($response_code == ‘404′) { 
echo ‘Page doesn\'t exist'; 
} else { 
echo $output; 
 


通过curl_setopt_array () 以数组的形式为一个curl设置会话参数:

eg:

PHP跨项目传递数据 curl_init()使用说明_第3张图片


你可能感兴趣的:(php)