当尝试从URL中获取变量时,如果它以点(“。”)结尾,我无法获得该点。通常在变量的末尾使用点,并且需要点才能搜索条目。
示例 - >一个网址:“http://localhost/test/test/testing.testing./”会给我以下内容:$ module =“test”,$ var1 =“test”,$ var2 =“testing.testing”
//from url : http://localhost/test/test/testing.testing./
var_dump($_GET);
// outputs array(3) { ["module"]=> string(4) "test" ["var1"]=> string(4) "test" ["var2"]=> string(15) "testing.testing" }
使用网址时:“http://localhost/?module=test&var1=test&var2=testing.testing。”输出将是正确的,包括尾随点。
//from URL : http://localhost/?module=test&var1=test&var2=testing.testing.
var_dump($_GET);
// outputs array(3) { ["module"]=> string(4) "test" ["var1"]=> string(4) "test" ["var2"]=> string(16) "testing.testing." }
我显然希望保持更清晰的URL结构,而不必在我尝试传递的变量包含点时绕过它。
我有理由相信这是我的.htaccess的问题,因为当在url中访问脚本时,它能够接收尾随点。
我的.htaccess看起来像这样:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?module=$1&var1=$2&var2=$3 [L]
我也被朋友告知,这可能是一个Windows问题,如果这是真的,我只是好奇是否有解决方法。我知道我可以通过解析$ _SERVER ['REQUEST_URI']来获取变量,但是我更愿意修复.htaccess中的另一个而不是用PHP捏造它。
如果需要更多信息,请通知我。 感谢。
答案 0 :(得分:0)
怎么样......
$path = $_SERVER['PHP_SELF'];
$params = explode("/", $path);
var_dump($params);