首頁 > 軟體

PHP中的cURL簡述

2020-06-16 17:24:38

curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具。它被廣泛應用在Unix、多種Linux發行版中 .

在Linux下可以在命令列中使用 curl www.linuxidc.com , 他會返回Linux公社的頁面程式碼, 也就是通過URL的方式獲取了網路檔案的內容

PHP中使用CURL

在PHP裡提供了這樣一個庫及其函數實現curl呼叫  , 用來抓取頁面內容是比較不錯的用途 , 也就是爬蟲咯, 模擬登陸也可以

用php_info() 檢視是否開啟了curl . 如未開啟, 請在開啟後進行下一步

來一個例子

<?php

//1.初始化curl物件
$curl = curl_init();

//2.設定一系列存取引數 curl set options
/*
curl_setopt(param1, param2, param3)
param1 : 也就是curl物件控制代碼
param2 : 設定的引數的型別(設定的是什麼引數), 大多以CURLOPT_xxx的形式
param3 : 引數的值, 這個值的型別由param2決定

  *** cURL 在php中的更多函數操作, 使用範例和curl_setopt的引數可以參考 php文件 :  http://php.net/manual/zh/ref.curl.php ***

&nbsp;*/
curl_setopt($curl, CURLOPT_URL, 'www.linuxidc.com');  // 設定抓取的url
curl_setopt($curl, CURLOPT_HEADER, 1); // 設定header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 設定返回的方式

//3. 執行curl操作
$data = curl_exec($curl); //


//4. 關閉cURL
curl_close($curl);

// 處理資料
echo $data;

?>

然後返回了這樣的結果(www.linuxidc.com 的介面)

其中頭部是一些 Header資訊, 後面就是html的內容, 在瀏覽器中html內容直接輸出後被轉換成頁面內容, 這與在linux中執行curl 操作是相同的 , 這樣我們就獲取到了頁面的資料 , 如果是做爬蟲那就可以使用正規表示式提取需要的資料 , 然後存取到資料庫中就可以了

POST資料

<?php

// 初始化的時候設定存取地址
$curl = curl_init("localhost/phplearn/curl_receive.php"); // 這個地址是我自己寫的測試用的, 唯一的輸出內容是下面返回結果的第二行的內容

$post = "username=arron&password=r20jf02jg"; // 設定資料

curl_setopt($curl, CURLOPT_HEADER, 1); // 設定header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 設定返回的方式
curl_setopt($curl, CURLOPT_POST, 1);  // 開啟post
curl_setopt($curl, CURLOPT_POSTFIELDS, $post); // 設定post資料

$result = curl_exec($curl);  // 執行

// 避免存取錯誤
if (curl_errno($curl) > 0)
    die("Wrong : ".curl_error($curl));

echo $result;

curl_close($curl); // 關閉

?>

然後我們看看返回結果

HTTP/1.1 200 OK Date: Mon, 24 Aug 2015 06:54:23 GMT Server: Apache/2.4.10 (Ubuntu) Vary: Accept-Encoding Content-Length: 71 Content-Type: text/html; charset=UTF-8
您POST過來的資料是 : username = arron , password = r20jf02jg

同樣返回了Header資訊和我們存取頁面的輸出資訊, 並將post的資料送到了我們的存取頁面 . 如果是get方法傳遞資料直接在url後面加上就可以了 .

更多curl使用方法以後再說

參考curl文件 : http://php.net/manual/zh/ref.curl.php

本文僅作為技術交流

Ubuntu 16.04 及衍生版安裝 cURL 7.49.0 http://www.linuxidc.com/Linux/2016-05/131574.htm

詳解PHP的cURL幾個函數  http://www.linuxidc.com/Linux/2016-11/137218.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-12/138944.htm


IT145.com E-mail:sddin#qq.com