PHP curl 使用

基本使用

使用 CURLOPT_URL 設定連結網址,然後執行即可。順利的話就可以取得回傳網頁原始碼

 

不直接顯示取得內容

將 CURLOPT_RETURNTRANSFER 設定為 true 即可

 

加上 POST 資料

增加 CURLOPT_POSTFIELDS 參數,傳遞 array() 陣列

Google+ 在 OAuth 內的資訊必須使用 POST 傳遞,使用方法大致如下

 

取得處理狀態

curl_getinfo() 可以得知執行後結果

 

設定或增加其他功能、參數

設定 REFERER 參照來源網址

如何得知送出的 Head ?

步驟

  1. 設定 CURLINFO_HEADER_OUT 為 true
  2. 使用 curl_getinfo() 取得輸出結果, 送出 Head 也在結果內

 

增加自定義 Head

 

增加自定義 – 傳遞連線 IP

HEAD 名稱前面強制加上 HTTP_ 開頭,因此取得 IP 時必須相互搭配

 

目的端 PHP 取得 IP 程式方法

首先請先看以下參考連結

這裡討論到一段網路普遍「謠傳」的取得 IP 代碼

大部分抄這段程式碼的人都不知道為什麼要先取 HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 這兩個值,等學會 curl 之後就會知道大大說這是唬爛是正確的。

想要知道接收端資訊必須另外儲存,文字檔、資料庫等都可以,為了方便這裡使用文字檔

隱藏 _SERVER[‘REMOTE_ADDR’]

設定使用 Proxy Server 代理連線,對方取得的 REMOTE_ADDR 就是 Proxy Server 的 IP

 

送出 HTTP Auth

如果有一個網頁使用 HTTP Auth 使用者認證,該如何使用 PHP curl 登錄取得資料?

以下是 zopim 的取得聊天紀錄範例,本來是使用 Linux curl 指令操作的,例如:

PHP 可以這樣實現

Timeout 以及取得 Timeout 錯誤

上傳檔案 PHP 5.4 以下

將檔案存放路徑的檔案名稱前加上 @ 即可

上傳檔案 PHP 5.5 以上

如要沿用 5.4 舊方法則設定 curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 即可

HTTP 417 – Expectation Failed

2,710 total views, 2 views today

發表迴響

你的電子郵件位址並不會被公開。