我现在有一个htaccess文件设置来删除文件类型,所以
www.example.com/home.php
将成为,
www.example.com/home
我需要将url与我保存在数据库中的url进行比较,我通过
if ($_SERVER['QUERY_STRING']) {
$pageURL = str_replace('.php', '?', 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING']);
}
else {
$pageURL = substr('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'], 0, -4);
}
当我在数据库中保存url时,它在htaccess文件删除.php后被保存为当前页面url,它是使用jquery ajax插入的。
当我要比较它时,我需要这个使它在php中匹配,因为php不考虑htaccess的变化。
有更好的方法吗?
你可以这样做:
$pageURL = rtrim($_SERVER['REQUEST_URI'], '.php');
这将给你的url与.php
删除,每当它出现在url的末尾。
查看parse_url()
函数。你可以用它把URL解析成几个部分,然后修改路径组件(比如删除。php)。然后您可以使用http_build_url()
函数从这些部分重新构建URL。
在我看来,结合John上面的建议,使用parse_url()
和使用pathinfo()将是最好的——用substr进行修剪、截断等并不总是像pathinfo()
那样优雅。