在PHP中更好的方法

时间:2011-10-28 19:06:59

标签: php

我目前将我的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的变化。

有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做:

$pageURL = rtrim($_SERVER['REQUEST_URI'], '.php');

只要网址末尾显示,您的网址就会被删除{<1}}。

答案 1 :(得分:1)

查看parse_url()函数。您可以使用它将URL解析为部分,然后修改路径组件(例如,删除.php)。然后,您可以使用http_build_url()函数从这些部分重建URL。

答案 2 :(得分:0)

在我看来,将John的使用parse_url()以及使用pathinfo()的建议结合起来是最好的 - 修剪,使用substr等截断并不总是像{{1}那样优雅}。