php curl 設置host curl_setopt CURLOPT_HTTPHEADER 指定host


我們在開發測試時,有時web服務器會綁定一個域名,但是因為dns是無法解析的,我們需要設置host文件去訪問。
但是,如果我們是需要通過curl訪問的話,無法訪問該url的host主機。所以,需要通過指定host的方式來訪問,具體訪問方式如下:
如果是linux下的curl命令:

Example
1
curl --silent -H "Host: www.digdeeply.info" "192.168.0.1/index.php"

如果使用php的curl的話,使用curl_setopt設置一下CURLOPT_HTTPHEADER即可。
請參考以下函數使用:

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//httpHeader    設置的 http head 參數 數組形式 如 array('Host: digdeeply.info')
function curl_by_host( $url , $postString = '' , $httpHeader = '' )
{
     $ch = curl_init();
     curl_setopt( $ch ,CURLOPT_URL, $url );
     curl_setopt( $ch ,CURLOPT_POSTFIELDS, $postString );
     curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,true);
     curl_setopt( $ch ,CURLOPT_USERAGENT, $_SERVER [ 'HTTP_USER_AGENT' ]);
 
     if (! empty ( $httpHeader ) && is_array ( $httpHeader ))
     {
         curl_setopt( $ch , CURLOPT_HTTPHEADER, $httpHeader );
     }
     $data = curl_exec( $ch );
     $info = curl_getinfo( $ch );
     curl_close( $ch );
    
     return $data ;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM