【发布时间】:2013-04-23 06:32:48
【问题描述】:
我正在寻找一个 PHP 函数,它接受一个相对 URL 并返回是否是这个 URL。
<?PHP
function isCurrentPage($page)
{
//Magic
}
?>
这将被传递值,例如"/"、"/foo/bar"、page.php,甚至是"foo/page.php?parameter=value"。
我的第一次尝试涉及使用$page == $_SERVER["REQUEST_URI"],但上面写的是"/foo/bar" != "/foo/bar/"。这不是什么大问题,但困难在于它说"/foo/bar" != "/foo/bar/index.php?parameter=value"。为了我的目的,我需要它说这些是等价的。
在给定的限制条件下,如何判断当前 URL 是否是传递给此函数的?我更喜欢一个简单、可靠的解决方案,该解决方案可以保证在未来 5 年内有效,因为这是一个长期的、高使用率的项目。旧的、未弃用的函数和/或正则表达式更可取。
概括地说,该方法必须在 URL http://example.com/foo/bar 上返回 true:
isCurrentPage("http://example.com/foo/bar")isCurrentPage("http://example.com/foo/bar/")isCurrentPage("http://example.com/foo/bar/index.php")isCurrentPage("http://example.com/foo/bar/index.phps")isCurrentPage("http://example.com/foo/bar/index.phtml")isCurrentPage("/foo/bar")isCurrentPage("/foo/bar/")isCurrentPage("/foo/bar/index.php")isCurrentPage("/foo/bar?parameter=value")isCurrentPage("/foo/bar/?parameter=value")isCurrentPage("/foo/bar/index.php?parameter=value")isCurrentPage("/foo/bar/index.php#id")isCurrentPage("#id")isCurrentPage("index.php")isCurrentPage("index.php?parameter=value")
等等。
【问题讨论】:
-
这个问题没有显示任何研究工作。 做好功课很重要。告诉我们您发现了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案。 FAQ.
-
别名怎么样,例如阿帕奇
Alias /baz /foo/bar? -
@MarcB 目前不是问题,但如果你有解决方案,我很乐意看到!