ホームページ  >  記事  >  バックエンド開発  >  PHPのCURLとは何ですか? PHP での CURL のコード例

PHPのCURLとは何ですか? PHP での CURL のコード例

不言
不言転載
2018-10-26 16:53:001917ブラウズ

この記事の内容は、php の CURL とは何ですか? phpのCURLのコード例は参考になると思いますので、困っている方は参考にしていただければ幸いです。

1. CURL とは

CURL は、さまざまな種類のプロトコルを使用してさまざまなサーバーに接続し、通信できるようにする強力なライブラリです。 http、https、ftp、gopher、telnet、dict、file、および ldap プロトコルをサポートします。また、HTTPS 認証、HTTP POST、HTTP PUT、FTP アップロード (これは PHP の FTP 拡張機能を使用して完了することもできます)、HTTP フォームベースのアップロード、プロキシ、Cookie、ユーザー名とパスワードの認証もサポートしています。

2. CURL を使用してリクエストを送信する基本プロセス

  1. curl_init() 接続ハンドルを初期化します;

  2. curl_setopt () CURL オプションを設定します。

  3. curl_exec() はリクエストを実行します。

  4. curl_close() は VURL 接続ハンドルを解放します。

3. CURL を使用して get/post リクエストを送信します

<?php
    /**
    *当$data为null时是get方式,否则为post方式
    */
     public function phpCurl($url, $data = null)
	 {
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
		if (!empty($data)){
			curl_setopt($curl, CURLOPT_POST, 1);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
		}
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
		$output = curl_exec($curl);
		curl_close($curl);
		return $output;
	 }


    //get方式。注意:这里的$url已经包含参数了,不带参数你自己处理哦GET很简单
    function curl_get_https($url)
    {
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
        $tmpInfo = curl_exec($curl);     //返回api的json对象
        //关闭URL请求
        curl_close($curl);
        return $tmpInfo;    //返回json对象
    }

    /* PHP CURL HTTPS POST */
    function curl_post_https($url,$data)
    { // 模拟提交数据函数
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[&#39;HTTP_USER_AGENT&#39;]); // 模拟用户使用的浏览器
        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提交的数据包
        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 &#39;Errno&#39;.curl_error($curl);//捕抓异常
        }
        curl_close($curl); // 关闭CURL会话
        return $tmpInfo; // 返回数据,json格式
    }


?>

以上がPHPのCURLとは何ですか? PHP での CURL のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。