保存任意文件名如test.php,访问test.php?a.b.c&d_e_fQ:为什么'.'自动变成'_'了?,能否通过设置/**
 *
 * $_GET TEST
 * 
 */echo implode('<br />', array_keys($_GET));
echo '<br />';
$arr = array('a.b' => 'cc');
echo implode('<br />', array_keys($arr));

解决方案 »

  1.   

    不小心就发布出去了环境,Apache/2.2.11 (Win32) PHP/5.2.8打印结果是
    a_b_c<br />d_e_f<br />a.b
      

  2.   

    a.b.c不能正确解析为关联数组元素(命名不合法) PHP自动处理了。
      

  3.   

    test.php?a-b-c&d_e_f 也会被处理成 a_b_c,服务器自动处理.
      

  4.   

    http://localhost/csdn_html/getUrlTest.php?a-b&c&d_e_f&&c.d
    print_r($_GET);
    Array ( [a-b] => [c] => [d_e_f] => [c_d] => ) $_GET这个数组中获取key(?a-b&c&d_e_f&&c.d)被php本身处理了,要知道原因,去看php源码
      

  5.   

    不要用array_keys这个函数试试foreach($_GET as $k=>$V) {
      echo $k.'|'.$v.'<br />';
    }
      

  6.   

    这是php的需求如果允许 “a.b.c” 这样的命名,将导致一些 数组<-->变量 函数运行失败
    因为 $a.b.c 不是合法的变量名
      

  7.   

    你可以通過替換啊...
    將值弄成a_b_c
    得到之後 在 將_替換成.你要的效果不就是實現了...
      

  8.   

    你可以替换一下或者 base64编码一下