【问题标题】:Server Request URI WildCard Magento服务器请求 URI 通配符 Magento
【发布时间】:2012-05-11 23:16:25
【问题描述】:
我目前正在使用以下代码在链接上生成活动状态:
<?php if ($_SERVER["REQUEST_URI"] == "/styles/bracelets.html/"):?>
后跟一个 else if 语句。
如何添加通配符,以便上面的路径包含路径为:/styles/bracelets.html?p=2、/styles/bracelets.html?p=3 等的所有页面。
提前致谢
山姆
【问题讨论】:
标签:
php
magento
content-management-system
request
【解决方案1】:
在这种情况下,您可以使用strpos():
if (strpos($_SERVER['REQUEST_URI'], '/styles/bracelets.html/') === 0):
这基本上检查以确保 /styles/bracelets.html/ 位于请求 URI 的开头,并且如果末尾有其他内容尾随 / 也将通过。如果在 haystack 中没有找到需要,strpos 将返回 false,如果在 haystack 开头找到,则返回 0,因此需要 ===。
preg_match() 也可以,但 strpos 在这种情况下可以解决问题。
【解决方案2】:
我想我找到了更清洁的方法:
if($_SERVER['SCRIPT_NAME'] == '/desired_page_name.php')
$_SERVER['SCRIPT_NAME'] 返回当前脚本的路径,但省略了可能的 $_GET 连接。
即如果输入了www.example.com/page.php?variable=value,那么$_SERVER['SCRIPT_NAME'] 将只包含/page.php 部分。