php - $_SERVER['REQUEST_URI'] - 重复内容
问题描述
我有个问题不知道怎么处理,代码如下:
<?php
if (strstr($_SERVER['REQUEST_URI'], '/catalog/')) {
echo do_shortcode( '[shortcode1]' );
}
elseif (strstr($_SERVER['REQUEST_URI'], '/catalog/site1/')){
echo do_shortcode( '[shortcode2]' );
}
elseif (strstr($_SERVER['REQUEST_URI'], '/catalog/site2/')){
echo do_shortcode( '[shortcode3]' );
}
else{
the_content();
}
?>
现在我想在每个子页面上显示不同的简码 - 但我不能这样做,因为第一个 REQUEST_URI 包含“目录”,并且每个下面也包含。
现在,当我在'/catalog/site1/'上时,会显示数据:
[shortcode1] 和 [shortcode2]
我怎样才能防止这种情况?
解决方案
您需要更改 if/else 的顺序,但为了避免为您不检查的条件显示简码,您需要执行更严格的检查'/catalog/'
以确保其后没有任何内容。您可以preg_match
使用正则表达式来检查 final 之后没有单词字符/
:
if (strpos($_SERVER['REQUEST_URI'], '/catalog/site1/') !== false){
echo do_shortcode( '[shortcode2]' );
}
elseif (strpos($_SERVER['REQUEST_URI'], '/catalog/site2/') !== false){
echo do_shortcode( '[shortcode3]' );
}
elseif (preg_match('#/catalog/[^\w]#', $_SERVER['REQUEST_URI'])) {
echo do_shortcode( '[shortcode1]' );
}
else{
the_content();
}
推荐阅读
- c# - 添加到表单的新控件在调试时不显示
- c# - Asp.net:Response.Write OnServerClick 代码隐藏功能不起作用
- javascript - 打开时如何使用现有联系人填充模式中的字段?
- android - RecyclerView 中的重复项 - SortedList
- c# - 为 ReportExecution2005 添加 Web 服务 - 找不到资源 C#
- javascript - 将数组转换为嵌套对象javascript
- python - 使用 python 将 hh:mm 浮点数转换为格式
- node.js - 是否可以更改日期格式?
- javascript - Sinch - 无法建立从网络 (javascript) 到移动应用程序 (android/iOS) 的呼叫
- php - 如何基于 Laravel 5 组织我的 API?