2021-05-12 14:32:11
PHP中的cURL簡述
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 ***
*/
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
相關文章