【问题标题】:PHP strpos issuePHP strpos问题
【发布时间】:2014-09-28 08:22:35
【问题描述】:

我访问了我的页面www.mysite.com/theme/test/index.php,其中包含以下代码。我希望在h1 中看到test 这个词,但它是空白的:-( 有人可以解释我哪里出错了吗?

<?php
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

if ((false !== strpos($url,'theme')) || (false !== strpos($url,'colours'))) {

    if(preg_match("/\/(\d+)$/",$url,$matches)) { $end=$matches[1]; }
    ?>
    <div class="row">
        <div class="medium-12 columns">
            <h1 class="page-title"><?php echo ucwords(str_replace("-"," ",$end)); ?></h1>
        </div>
    </div>
<?php
}
?>

谢谢

【问题讨论】:

    标签: php regex url preg-match strpos


    【解决方案1】:

    我认为你的 preg_match 是错误的。 \d 表示数字。您的网址中没有任何内容。

    【讨论】:

      【解决方案2】:

      我不太确定你在运行脚本时到底有哪些信息,但我最好的猜测是 $end 永远不会被设置。

      检查以确保您的正则表达式匹配,否则$end 将为空。

      【讨论】:

        【解决方案3】:

        已解决。

        @Marcin 是对的。

        $end = end((explode('/', rtrim($url, '/'))));

        发现这很有用:Get Last Part of URL PHP

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-10
          • 1970-01-01
          • 1970-01-01
          • 2014-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多