2

我有一个博客,我想在 MAIN 页面上显示 ADS 或特殊文本,而不是在具有 URI 的任何其他页面上/?paged=[number]。我试过标准的正则表达式/^[0-9].$/,但它不匹配。

我不确定我做错了什么或如何去做

if (substr_count($_SERVER[REQUEST_URI], "/") > 0 AND
substr_count($_SERVER[REQUEST_URI], "/?paged=1") == 0 AND
substr_count($_SERVER[REQUEST_URI], "/?paged=2") == 0 AND
substr_count($_SERVER[REQUEST_URI], "/?paged=3") == 0 AND
substr_count($_SERVER[REQUEST_URI], "/?paged=4") == 0 AND
substr_count($_SERVER[REQUEST_URI], "/?paged=5") == 0) {
echo "display special text, banners, and other stuff";
}

这就是我目前正在做的事情,但我不想做成千上万的这些......

4

4 回答 4

7

你不能只检查数组paged中的存在吗?GET

if(!isset($_GET['paged'])) {
    // You know this is the main page.
}
于 2013-05-13T12:27:38.707 回答
0

正则表达式: /^[0-9].$/对于“3k”字符串是正确的。分析这种模式

/page=(\d+)/
/page=([1-5])/
/^\/\?page=([1-5])$/
/page=(?<page>[1-5])/
于 2013-05-13T12:38:08.217 回答
0

为什么不在 GET 参数中使用正则表达式?

<?php
$regexp = "/^(\d+)+$";
if (preg_match($regexp, $_GET['paged'])) {
    #...your code
} else {
    #...your code
}

或者(如果你想使用整个字符串)试试这个:

<?php
$regexp = "/^(\/\?paged)+=(\d+)+$/";
于 2013-05-13T12:39:06.877 回答
0

尝试这个:

if (preg_match('#paged=\d+#', $_SERVER[REQUEST_URI]) {
    echo "display special text, banners, and other stuff";
}
于 2013-05-13T12:33:21.323 回答