下面是我封装好的一个curl方法!传入对应的参数后直接使用
$apiurl='http://www.baidu.com';
//打印出我想抓取的网址的内容,一般是xml形式的字符串,但是不是xml,需要把字符串转为xml对象,使用simplexml_load_string这个函数,,因为一般操作xml里面的数据有点麻烦,我们通常都会将数据转为json格式,方便直接我们使用和操作数据,将xml对象转为json函数为json_encode,得到json格式的数据,
然后再将json数据解密,使用json_decode,记得要转为数组,说了这么多,给大家演示一个吧,怕有些孩子不会,
比如我们在上面的换为 $xml_str=_request($apiurl,true,'get');,然后操作进行下面操作
//①:将返回的数据(返回的是字符串)转为xml对象
$xml=simplexml_load_string($xml_str);
//②:将xml对象转为json格式(json加密)
$json=json_encode($xml);
//③将json格式解密,同时转为数组,方便我们访问数据
$json_arr=json_decode($json,true); //后面这true 参数表示转为数组形式,如果没有的话它将解密为一个json对象,具体可以自己看看php手册的详细权威解释
这样之后我们就得到一个数组了,这个数组里面装有我们需要的数据,一般都是多为数组,但是不复杂!想怎么用旧就怎么用了,
下面是一个封装好了的方法
//封装好了的curl方法
function _request($curl, $https=true, $method='get', $data=null){
$ch = curl_init();//初始化
curl_setopt($ch, CURLOPT_URL, $curl);//设置访问的URL
curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不做服务器认证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//不做客户端认证
}
if($method == 'post'){
curl_setopt($ch, CURLOPT_POST, true);//设置请求是POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置POST请求的数据
}
$str = curl_exec($ch);//执行访问,返回结果
curl_close($ch);//关闭curl,释放资源
return json_decode($str, true);
}
//参数说明:请求地址,是否是https请求(一般为false),请求方式,要进行传递的数据