php curl學習筆記
阿新 • • 發佈:2018-10-31
定義
- curl:client url library function ,用來抓取遠端檔案或傳輸檔案
- file_get_contents(url)雖然也能抓取網站資訊,但是功能及其有限
使用前提
- windows下:進入php.ini下開啟extension=php_curl.dll 擴充套件
- linux下:使用yum -y install php-culr 命令安裝即可使用_
基本設定
- curl_init() 初始化
- curl_setopt($ch,CURLOPT_URL , “www.baidu.com”) 設定訪問url
- curl_setopt($ch , CRULOPT_HEADER , 1 ) 是否返回頭資訊,預設為0,不返回
返回的一個例子:HTTP/1.1 200 OK Date: Mon, 29 Oct 2018 10:04:51 GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/v5.16.3 X-Powered-By: PHP/5.4.16 Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8 - curl_setopt($ch , CURLOPT_NOBODY , 0) 是否返回頁面主題,預設為0 ,返回
- curl_setopt($ch , CURLOPT_TIMEOUT , 30 ) 設定抓取等待時間,預設一直等
- curl_setopt($ch ,CRULOPT_MAXREDIRS, 5) 設定最大重定向時間
- curl_setopt($ch , CURLOPT_USERAGENT , ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36’ ) 設定使用者代理,也就是以什麼身份去訪問該頁面
- curl_setopt($ch , CURLOPT_HTTPHEADER , $arr) 自定義目標伺服器收到的header頭內容
- curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , 0) 設定是否以ssl加密的方式去訪問https網站
- curl_setopt($ch , CURLOPT_POST , 1) ; 設定用post方式去提交訂單
- curl_setopt( arr ) 提交的post資料
- curl_setopt($ch , CURLOPT_PORT , 8080 ) 訪問埠號,預設時80
- curl_exec($ch) 開始訪問
- curl_getinfo($ch) 以陣列的方式返回response資訊
- culr_close($ch) 關閉資源
簡單例項
抓取百度的資訊
public function index()
{
$ch=curl_init() or die(curl_error($ch));
curl_setopt($ch , CURLOPT_URL, 'https://www.baidu.com/s?wd=php');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
curl_setopt($ch , CURLOPT_SSL_VERIFYPEER,0);
$result=curl_exec($ch) or die(curl_error($ch));
echo $result;
curl_close($ch);
}