歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> PHP中的cURL簡述

PHP中的cURL簡述

日期:2017/2/28 13:45:17   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved