PHP的CURL的常見用法

2021-08-09 18:27:31 字數 3945 閱讀 7692

php建立curl請求的基本步驟

①初始化

curl_init()

②設定屬性:curl有很多屬性引數可設定,這些屬效能指定curl請求的各種細節

curl_setopt()

③執行並獲取結果

curl_exec()

④獲取錯誤號及錯誤資訊

curl_errno()  curl_error()

⑤釋放控制代碼

curl_close()

curl實現get和post請求

①get請求

//初始化

$curl = curl_init();

//設定請求的url

curl_setopt($curl,curlopt_url,'');

//設定標頭檔案的資訊做為資料流輸出

curl_setopt($curl,curlopt_header,1);

//設定獲取的資訊以檔案流的形式返回,而不是直接直接輸出

curl_setopt($curl,curl_returntransfer,1);

//執行命令

$data = curl_exec($curl);

//關閉url請求

curl_close($curl);

//列印獲得的資料

print_r($data);

②post請求

//初始化

$curl = curl_init();

//設定請求的url

curl_setopt($curl,curlopt_url,'');

//設定標頭檔案的資訊做為資料流輸出

curl_setopt($curl,curlopt_header,1);

//設定獲取的資訊以檔案流的形式返回,而不是直接直接輸出

curl_setopt($curl,curl_returntransfer,1);

//設定post方式提交

curl_setopt($curl,curlopt_post,1);

//設定post資料

$post_data = array(

'name'=>'tom',

'pass'=>'123456',

);curl_setopt($curl,curl_postfields,$post_data);

//執行命令

$data = curl_exec($curl);

//關閉url請求

curl_close($curl);

//列印獲得的資料

print_r($data);

curl修改請求頭

define ('is_proxy', true); //是否啟用**  

/* cookie檔案 */

$cookie_file = dirname ( __file__ ) . "/cookie_" . md5 ( basename ( __file__ ) ) . ".txt"; // 設定cookie檔案儲存路徑及檔名

/*模擬瀏覽器*/

$user_agent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.2; .net clr 1.1.4322)";

$proxy = "61.135.169.125";

function vlogin($url, $data)

// ip偽裝

$ip = rand(1,255).".".rand(1,255).".".rand(1,255).".".rand(1,255)."";

curl_setopt($curl, curlopt_httpheader, array('x-forwarded-for:'.$ip, 'client-ip:'.$ip)); //構造ip

curl_setopt($curl, curlopt_referer, " "); //構造來路

curl_setopt($curl, curlopt_header, 1);

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, $globals ['user_agent'] ); // 模擬使用者使用的瀏覽器

@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_cookiejar, $globals ['cookie_file'] ); // 存放cookie資訊的檔名稱

curl_setopt ( $curl, curlopt_cookiefile, $globals ['cookie_file'] ); // 讀取上面所儲存的cookie資訊

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 ))

curl_close ( $curl ); // 關閉curl會話

return $tmpinfo; // 返回資料

}

$params = "username=dudu&password=****";

$result = vlogin("",$params);

echo $result;

curl支援https請求

curl_setopt($ch, curlopt_ssl_verifyhost, 0);//禁止檢查**(禁止檢查ssl證書中是否存在common_name即不驗證host)

curl_setopt($ch, curlopt_ssl_verifypeer, 0);//禁止檢查對等證書(peer's certificate)

curl超時設定

curl_setopt($curl,curlopt_timeout,30);//設定超時時間為30s

Curl的常見用法

一 基本命令curl的學習。引數 說明 示例 a設定user agent curl a chrome x用指定方法請求 curl x get i只返回請求的頭資訊 curl i d以post方法請求url,並傳送相應的引數 curl d a 1 d b 2 d c 3 curl d a 1 b 2 ...

PHP擴充套件CURL的用法

1 使用curl模擬post表單提交 建立curl控制代碼 curl setopt ch,curlopt returntransfer,true 獲得返回內容,但不需要直接輸出到頁面上 curl setopt ch,curlopt postfields,data post提交的引數寫在乙個陣列裡面 ...

curl命令常見用法

centos7服務上,一般沒有桌面系統,我們如果要使用http請求,curl是個不錯的選擇 如果要把這個網頁儲存下來,可以使用 o 引數 2,顯示頭資訊 i 引數可以顯示 http response 的頭資訊,連同網頁 一起。i 引數則只顯示 http response 的頭資訊。這個也經常用到,對...