[转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host

From : http://digdeeply.org/archives/10132139.html

我们在开发测试时,有时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);

    if(curl_errno($ch)){

        return $info;

    }

    return $data;

}

时间: 2024-10-14 20:42:06

[转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host的相关文章

ping检测服务器或带指定host去curl网站链接

ping命令行指令检测: /** * PHP命令行ping * @param [str] $address 域名或者IP * @return [arr] ['status'=>1|0,'data'=>'响应信息'] */ function pingAddress($address) { if(preg_match('/WIN/', PHP_OS)){ // Windows 服务器下 exec("ping -n 1 $address", $output, $return_va

PHP CURL CURLOPT参数说明(curl_setopt)

CURLOPT_RETURNTRANSFER 选项: curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 如果成功只将结果返回,不自动输出任何内容. 如果失败返回FALSE curl_setopt($ch, CURLOPT_RETURNTRANSFER,0); 或着不使用这个选项: 如果成功只返回TRUE,自动输出返回的内容. 如果失败返回FALSE PHP中CURL方法curl_setopt()函数的一些参数 . bool curl_setopt (int

php使用curl设置超时的重要性

原文:php使用curl设置超时的重要性 原文:http://phpquan.com/lamp/php/php-curl-timeout/ 网站登录不了,原因是没有可用的 PHP 子进程来响应新的请求了.这可能是是由于PHP-curl  没有设置超时时间引起的. 这段时间用PHP写了个爬虫程序,但是经常执行了一段时间后程序就卡住了.程序是用的curl方式进行抓取,后来设置了 CURLOPT_TIMEOUT 参数就没有出现这个问题了平常如果测试curl都直接设置了url就直接执行了.curl功能还

PHP CURL设置Authorization

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $linkUrl); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_FAILONERROR, false); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt(

panabit怎么设置只允许访问指定的https网站?

panabit怎么设置只允许访问指定的https网站?流量控制里没有域名组,研究了半天没找到设置的地方,去官方论坛发帖子没人搭理! 经过研究可以通过ip禁止,得先解析出来https对应的ip(nslookup),加入IP群组,添加流量策略,最后一条全都禁止.貌似只能一条一条的加了. 网上搜索出来一个批处理解析域名的代码,挺好用的!添加到附件了. 批处理出处:http://www.bathome.net/thread-20715-1-1.html

20.31 expect脚本同步文件;20.32 expect脚本指定host和要同步的文件;20.33 构建文件分发系统;20.34

20.31 expect脚本同步文件 自动同步文件 1. 同步远程机器hao2上/tmp/12.txt文件 到本机/tmp/下: [[email protected] ~]# vim 4.expect 添加内容: #!/usr/bin/expect set passwd "admin" spawn rsync -av [email protected]192.168.211.129:/tmp/12.txt /tmp/ expect { "yes/no" { send

expect脚本同步文件、指定host和要同步的文件、构建文件分发系统、批量远程执行命令

expect脚本同步文件 1.自动同步文件 [[email protected] shell]# vi 4.expect 增加如下脚本内容: #!/usr/bin/expect set passwd "123456" spawn rsync -av [email protected]:/tmp/12.txt /tmp/ expect { "yes/no" { send "yes\r"} "password:" { send &

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行

20.31 expect脚本同步文件 自动同步文件 #!/usr/bin/expect set passwd "rootroot" spawn rsync -av [email protected]:/tmp/12.txt /tmp/ expect { "yes/no" { send "yes\r"} "password:" { send "$passwd\r"} } expect eof 执行 [[ema

20.31 expect脚本同步文件 20.32 expect脚本指定host和要同步的文件 20.

20.31 expect脚本同步文件 20.32 expect脚本指定host和要同步的文件 20.33 构建文件分发系统 20.34 批量远程执行命令 原文地址:http://blog.51cto.com/12058686/2108318