还是别的影响?
我的理解:在不指定user_agent的情况下,使用不同的浏览器进行访问,会将各自的user_agent数据提交到服务端。但在php.ini指定了值的情况下会发生什么?在抓包分析中发现,不论是否设置user_agent,访问过程中浏览器都提交user_agent数据到服务器,那么设置user_agent会发生什么?

解决方案 »

  1.   

    补充:修改php.ini中user_agent值,重启IIS后发现,<?php echo getenv("HTTP_USER_AGENT"); ?>输出内容无任何变化
      

  2.   

    user_agent="PHP"
    表示通过PHP脚本访问网络
    在一些浏览器不无法正确显示的情况下,你可以把PHP更改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器进行配置,这样可以让PHP编译的时候自动识别的user_agent更改为这个参数的值。
    不知道自己说清楚了没,我老婆说她没看懂
      

  3.   

    确实没看懂就想弄明白,php中怎样获取到user_agent的值?我使用getenv("HTTP_USER_AGENT")获取的值总是"PHP",不论如何修改配置都不变。
      

  4.   

    你用fopen,file_get_contents等,获取网络资源的时候对方的网站如果分析user_agent,发现是php,当然,你可以修改
      

  5.   

    <?php echo getenv("HTTP_USER_AGENT"); ?>输出内容无任何变化user_agent是打开页面时,浏览器通过http头传递给对方服务器的,php.ini里面设置主要是伪装成浏览器。你这样输出当然没有变化。因为你是使用浏览器打开这一页的。这值是浏览器或请求方传给服务器。你换个浏览器就知道了。
      

  6.   

    换个浏览器就又变化了?那么.ini中的设置有什么作用呢?不论我设置什么值,它都只和用户使用的浏览器相关的话?
      

  7.   


    //你这样测试
    //假如是本机,假如文件是s.php   user_agent="PHP"前面分号去掉if(isset($_GET['t']))
    {
    print_r(apache_request_headers());
    }
    else
    {
    echo file_get_contents("http://localhost/s.php?t=1");
    }
      

  8.   

    PHP.INI里设置USER_AGENT并不是设置的用户访问你服务器的USER_AGENT,而是你服务器上的程序去访问其他网络页面时的USER_AGENT
      

  9.   

    直接这样就可以了啊。
    <p><?php echo $_SERVER['HTTP_USER_AGENT']; ?> </p>
      

  10.   

    ╮(╯▽╰)╭我看你真是没弄懂,我说的 意思是,php也可以访问别人网站的,知道不?
    这时候,别人网站有些为了防止非浏览器的访问,防止被采集,就会做浏览器检测,检测user_agent.
    如果你不伪装,不设就采集不到了。
    通常的访问是浏览器->网站,网站获得的是你的浏览器信息
    而你如果用些fopen,socket之类的访问别人网站就是
    <?php
    $handle=fopen("http://163.com",r);
    while(!feof($handle))
    {
    // Read each line and add to $myLine
    $myLine.=fgets($handle,255);
    }
    echo $myLine;
    fclose($hanle);
    ?>
    浏览器->你的本地服务器->网站,网站获得的是服务器里php的php.ini设置的信息。
      

  11.   

    在代理访问的时候会用到这个user agent的
    平常访问应该不会用到