PHP - 如何根据URL

时间:2016-07-21 23:03:43

标签: php

在我的网站(thirdsidethreads.com)上我想在索引页面上显示“欢迎”消息,但是当人们使用URL中的某些参数访问索引页面时,我不希望它显示。如果URL是普通的并且仅包括域,则表示它作为主页运行。如果URL中还有其他字符,则表示访问者正在尝试使用该页面查看特定内容并且不是主页。

换句话说,我想要这个:

  

如果网址中没有域名,则显示消息。

     

如果网址如下所示,请勿显示:http://www.thirdsidethreads.com/#!1007747370?q=I1007747370

如果有人能为我提供解决方案,我会很感激。我觉得我已经尝试了一切。

2 个答案:

答案 0 :(得分:0)

您应该从parse_url()开始,并传入您网页的当前网址。

你会对输出的三个部分感兴趣; pathqueryfragment。如果您的网址为example.com/,则路径可以为斜线,因此请忽略它并执行以下操作:

$showMessage = ((empty($bits['path']) || $bits['path'] === '/') && empty($bits['query']) && empty($bits['fragment']));

我添加了an example here一些断言。随意扩展测试,看看它是否真的适合您的用例。

要专门定位URL的片段,可以使用PHP_URL_FRAGMENT常量作为参数:

$fragment = parse_url($url, PHP_URL_FRAGMENT); // !1007747370?q=I1007747370 in your example

答案 1 :(得分:0)

由于似乎无法使用PHP检索我的URL的哈希标记部分,所以我选择使用JavaScript解决方案。它工作正常。

<script>
function message() {

if (window.location.hash=="") {

    document.getElementById('welcome').style.display="block";

} else {

    document.getElementById('welcome').style.display="none";

}

}

window.onload=message;
</script>