本文目錄一覽:
curl命令在PHP中怎麼用
這是我項目中一直在用的一個方法
?php
function curl($url,$params = array(),$header = array(),$timeout = 180){
if(empty($url)) return $url;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);//請求url地址
curl_setopt($curl, CURLOPT_HTTPHEADER , $header ); //構造IP
if(!empty($params) count($params) 0){
curl_setopt($curl, CURLOPT_POST, true);
//Request Payload格式數據
if(isset($params[‘is_json’]) $params[‘is_json’] === true){
unset($params[‘is_json’]);
$params = json_encode($params);
}else{
$params = http_build_query($params);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
}
//curl_setopt($curl, CURLOPT_HEADER, true);//是否返迴響應頭信息
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//是否將結果返回
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);//是否重定向
//curl_setopt($curl, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36’);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 只信任CA頒佈的證書
//curl_setopt($curl, CURLOPT_CAINFO, $cacert); // CA根證書(用來驗證的網站證書是否是CA頒佈)
//curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 檢查證書中是否設置域名,並且是否與提供的主機名匹配
// 從證書中檢查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
//curl_setopt($curl, CURLOPT_HTTPHEADER, array(“Expect: “));
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);//用來告訴PHP腳本在成功連接服務器前等待多久(連接成功之後就會開始緩衝輸出),這個參數是為了應對目標服務器的過載,下線,或者崩潰等可能狀況;
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);//用來告訴成功PHP腳本,從服務器接收緩衝完成前需要等待多長時間。如果目標是個巨大的文件,生成內容速度過慢或者鏈路速度過慢,這個參數就會很有用。
// 自動設置Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
//curl_setopt($curl, CURLOPT_COOKIEJAR, “D:phpStudyWWWcjcooBE66.tmp”);// //寫入cookie信息
//setcookie(‘cookie_jar’, $cookie_jar); //保存cookie路徑
$data = curl_exec($curl); //執行
curl_close($curl);
return $data;
}
?
PHP_CURL使用詳解
CURL是PHP的一個擴展,利用該擴展可以實現服務器之間的數據或文件傳輸,用來採集網絡中的html網頁文件、其他服務器提供接口數據等。
GET請求
POST請求
如何利用php發送curl指令
$ch = curl_init(); // 初始化
curl_setopt($ch, CURLOPT_URL, “”);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 隨301,302 自動跳轉
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 不直接輸出到頁面
curl_setopt($ch, CURLOPT_TIMEOUTR, 5); // 設置超時時間
$content = curl_exec($ch); // 執行並返回內容
curl_close($ch); // 關閉
CURLOPT 選項很多,自己去php官網查看
怎樣用php中的curl模擬登陸
在我的博客《PHP cURL模擬登錄與採集分析過程詳解》做了詳細的介紹,步驟有:
1. 訪問目標網站
2. 打開Firebug(快捷鍵:F12)
3. 清除【Cookie】
4. 重新訪問目標網站
5. 設置【網絡】為[保持]狀態
6. 填寫表單,提交登錄請求
7. 利用【網絡】,分析提交信息
8. 複製請求的cURL命令
9. 分析命令傳輸的參數與Cookie和前面頁面響應內容的關聯性
10. 如果遇到Cookie和響應內容都無法查找到的參數,Ctrl+S保存當前頁面為全部,利用文本搜索該參數的位置
11. 利用cURL命令組裝模擬登錄程序
詳情請參考博客內容:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/236119.html