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

 

curl --silent -H "Host: www.digdeeply.info" "192.168.0.1/index.php"
如果使用php的curl的話,使用curl_setopt設置一下CURLOPT_HTTPHEADER即可。
請參考以下函數使用:
 
01.//httpHeader    設置的 HTTP head 參數 陣列形式 如 array('Host: digdeeply.info')
02.function curl_by_host($url,$postString='',$httpHeader='')
03.{
04.$ch = curl_init();
05.curl_setopt($ch,CURLOPT_URL,$url);
06.curl_setopt($ch,CURLOPT_POSTFIELDS,$postString);
07.curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
08.curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
09. 
10.if(!emptyempty($httpHeader) && is_array($httpHeader))
11.{
12.curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);
13.}
14.$data = curl_exec($ch);
15.$info = curl_getinfo($ch);
16.curl_close($ch);
17.if(curl_errno($ch)){
18.return $info;
19.}
20.return $data;
21.}

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()