本文目錄一覽:
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
在安裝一些PHP網站的時候,會提示要求開啟curl_getinfo()函數支持功能,否則網站無法安裝,在網上找了一些資料,試了好多次終於將curl_getinfo()的功能開啟,下面介紹一下開啟的具體過程。
工具/原料
php.ini
方法/步驟
首先打開php.ini文件,一般默認放在C盤windows目錄下。
在php.ini文件夾下,查找extension=php_curl.dll,找到後,把它前面的分號去掉,讓它起作用。
然後再查找extension_dir=,看看後面的地址指向哪個文件夾,然後打開這個文件夾。
從這個php5文件夾中找到libeay32.dll, ssleay32.dll,這兩個文件,然後把這兩個文件拷貝到c盤windows里的system32文件中。
重新啟動系統就可以了,網上說只要重啟iis或apcha等,但試了好像不靈,果斷重啟都可以了。
PHP中CURL是如何使用的
在php中可以很容易的獲取某個url的內容,只要通過file_get_contents,file或者readfile函數就能輕鬆實現,根本不必使用cURL:
php curl的幾種用法
總結一下項目中用到curl的幾種方式1. php curl的默認調用方法,get方式訪問url$ch = curl_init();curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭curl_setopt($ch, CURLOPT_ENCODING, “gzip” ); //設置為客戶端支持gzip壓縮curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間curl_setopt($ch, CURLOPT_URL, $url );curl_exec( $ch );if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp);$curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值if( $curl_code == 200 ) {//正常訪問url}//異常2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= ‘Expect:’;$header[]= ‘Expect:’;3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_NOBODY, 1);curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_NOBODY, 1);或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the bodycurl_setopt($ch, CURLOPT_NOBODY, 0);curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the bodycurl_setopt($ch, CURLOPT_NOBODY, 0);4. 訪問虛擬主機,需設置Host$header[]= ‘Host: ‘.$host;5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 );put, delete:curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “DELETE”); //或者PUT,需要伺服器支持這些方法。6. 保存下載內容為文件
原創文章,作者:FZSOI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330263.html