php抓取网页数据实例( 一起:GET:POST:实例:以上这篇就是(图))

优采云 发布时间: 2021-11-13 05:10

  php抓取网页数据实例(

一起:GET:POST:实例:以上这篇就是(图))

  PHP调用接口API封装示例

  更新时间:2019年10月11日10:39:57 作者:开元节流

  今天小编就分享一个PHP调用接口API封装的例子,有很好的参考价值,希望对大家有所帮助。跟着小编一起来看看

  获取:

  

/**

* 通过URL获取页面信息

* @param $url 地址

* @return mixed 返回页面信息

*/

function get_url($url)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url); //设置访问的url地址

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容

$result = curl_exec($ch);

curl_close ($ch);

return $result;

}

  发布:

  

/**

* 模拟POST提交

* @param string $url 地址

* @param string $data 提交的数据

* @return string 返回结果

*/

function post_url($url, $data)

{

$curl = curl_init(); // 启动一个CURL会话

curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对*敏*感*词*来源的检查

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器

//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转

//curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求

curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包x

curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制 防止死循环

curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回

$tmpInfo = curl_exec($curl); // 执行操作

if(curl_errno($curl))

{

echo 'Errno'.curl_error($curl);//捕抓异常

}

curl_close($curl); // 关闭CURL会话

return $tmpInfo; // 返回数据

}

  GET&&POST:

  

/**

* CURL请求

* @param $url 请求url地址

* @param $method 请求方法 get post

* @param null $postfields post数据数组

* @param array $headers 请求header信息

* @param bool|false $debug 调试开启 默认false

* @return mixed

*/

function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false) {

$method = strtoupper($method);

$ci = curl_init();

/* Curl settings */

curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);

curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");

curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */

curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */

curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);

switch ($method) {

case "POST":

curl_setopt($ci, CURLOPT_POST, true);

if (!empty($postfields)) {

$tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;

curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);

}

break;

default:

curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */

break;

}

$ssl = preg_match('/^https:\/\//i',$url) ? TRUE : FALSE;

curl_setopt($ci, CURLOPT_URL, $url);

if($ssl){

curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts

curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在

}

//curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/

curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/

curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ci, CURLINFO_HEADER_OUT, true);

/*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */

$response = curl_exec($ci);

$requestinfo = curl_getinfo($ci);

$http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);

if ($debug) {

echo "=====post data======\r\n";

var_dump($postfields);

echo "=====info===== \r\n";

print_r($requestinfo);

echo "=====response=====\r\n";

print_r($response);

}

curl_close($ci);

return $response;

//return array($http_code, $response,$requestinfo);

}

  示例:

  

$res =httpRequest($url,'post',$data);

$json_array = json_decode($res,true);

$data=$json_array['data']['admin_user_list'];

echo $data

  以上PHP调用接口API封装示例为编辑器分享的全部内容。希望能给大家参考,也希望大家多多支持Script Home。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线