我們在開發測試時,有時web服務器會綁定一個域名,但是因為dns是無法解析的,我們需要設置host文件去訪問。
但是,如果我們是需要通過curl訪問的話,無法訪問該url的host主機。所以,需要通過指定host的方式來訪問,具體訪問方式如下:
如果是linux下的curl命令:
1
|
curl --silent -H
"Host: www.digdeeply.info"
"192.168.0.1/index.php"
|
如果使用php的curl的話,使用curl_setopt設置一下CURLOPT_HTTPHEADER即可。
請參考以下函數使用:
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
;
}
|