php_curl.dll擴展介紹和詳解

、什麼是CURL且能實現什麼功能? 

 

 

什麼是CURL 

curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, HTTP上傳, 代理伺服器, cookies, 用戶名/密碼認證, 下載文件斷點續傳等等,功能十分強大。

PHP中常用都實現那些功能: 

 

 

1、實現遠程獲取和采集內容 

2、實現PHP 網頁版的FTP上傳下載 

3、實現模擬登陸 

4、實現接口對接(API),數據傳輸等 

5、實現模擬Cookie等 

 

 

 

2、PHP 如何使用CURL功能 

1  整個操作過程中第一步是用cur_init()函數進行初始化 

$curl = curl_init(‘www.php100.com’); 

2  然後,用curl_setopt()函數進行設置選項。 

3  設置後,進行執行事務 curl_exec($curl); 

4  最後關閉curl_close(); 

 

 

3、使用PHP CURL實現傳輸和獲取功能 

 

 

$curl = curl_init(); //初始化一個 cURL 對象 

curl_setopt($curl, CURLOPT_URL, "http://www.php100.com"); 

//設置你需要抓取的URL 

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

//設置cURL 參數,要求結果保存到字符串中還是輸出到屏幕上。 

$data = curl_exec($curl); //運行cURL,請求網頁 

curl_close($curl); //關閉URL請求 

 

 

=========== 

 

$user = "admin"; 

$pass = "admin100"; 

$curlPost = "user=$user&pass=$pass"; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php"); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 

curl_setopt($ch, CURLOPT_POST, 1); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); 

$data = curl_exec($ch); 

curl_close($ch);

 

 

 

 

1、CURL模擬登陸的流程和步驟

2、tempnam 創建一個臨時文件

3、使用CURL模擬登陸到PHP100論壇

<?php

 

$cookie_file    =    tempnam('./temp','cookie');

$login_url        =    'http://bbs.php100.com/login.php';

$post_fields    =    'cktime=31536000&step=2&pwuser=php100-88&pwpwd=111111';

 

 

$ch = curl_init($login_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

curl_exec($ch);

curl_close($ch);

 

 

 

 

$url='http://bbs.php100.com/userpay.php';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

$contents = curl_exec($ch);

preg_match("/<li>?????(.*)<\/li>/",$contents,$arr);

echo $arr[1];

curl_close($ch);

?>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *