PHP仅匹配字符串父级URL字符串。忽略子目录路径

时间:2017-12-12 02:19:01

标签: php regex string drupal drupal-7

我希望在模板文件(Drupal 7)中实现一个简单的条件,它检查URL路径,并且仅在字符串是精确/页面是父项时才运行。目前,我有条件工作,但匹配时URL条件的子页面仍然执行条件。 E.g:

UNION

这仍适用于任何层级,所以:

$url_vars = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url_vars, 'parent-page') !== false) {
// Do something
}

如何使这项工作使条件严格管理父目录而不是子目录?任何指导或想法都会有很大帮助。我更喜欢处理这个服务器端,而不是前端。

谢谢! 标记

3 个答案:

答案 0 :(得分:1)

我不确定您的REQUEST_URI字符串会有多大差异,但这可能就足够了:

if(strpos($_SERVER['REQUEST_URI'],'parent-page')!==false && strpos($_SERVER['REQUEST_URI'],'parent-page/')===false){

这只会检查parent_page中是否存在REQUEST_URI(静态字符串),并且它没有尾随/

如果没有这个诀窍,请提供有关您的URI值的更多具体细节。

可能有用的参考:https://stackoverflow.com/a/4731027/2943403

答案 1 :(得分:0)

您可以使用“父页”'爆炸网址。并计算数组以查看它是否为子级。

$arr = explode("parent-page", $url_vars);
If(count($arr) <= 1) {
      // Parent-page
}

由于爆炸删除了父页面&#39;并创建一个其余的数组,你最终应该有一个项目,其中包含&#34; http://&#34;。
如果你得到第二个项目是你的子页面。

答案 2 :(得分:-1)

@Html.Sitecore().Field(TPage.Headline, new { @class="page-heading", EnclosingTag="h1"})变量应包含当前页面路径。尝试使用它而不是$_GET['q']

有关上下文模块的更高级用法检查:

https://www.drupal.org/project/context