代码之家  ›  专栏  ›  技术社区  ›  Codehan25

strtolower和mb\u strtolower不工作

  •  0
  • Codehan25  · 技术社区  · 6 年前

    我有一个存储字符串的变量,它是通过CMS Contao的插入标记提供的。

    category = "{{page::title}}";
    

    此时字符串的值为“Fitness”,带有一个大的“F”。我希望这个字符串完全用小写字母表示。

    我已经尝试了以下方法:

    // 1
    $category = "{{page::title}}";
    echo strtolower($category);
    
    // 2
    $category = "{{page::title}}";
    echo mb_strtolower($category);
    
    // 3
    $category = "{{page::title}}";
    echo mb_strtolower($category, 'UTF-8');
    

    但这些方法都不管用,我还是用一个大“F”来“健身”。

    我做错了什么?

    1 回复  |  直到 6 年前
        1
  •  3
  •   fritzmg    6 年前

    在将结果发送到浏览器之前,插入标记将替换为Contao。你在试图 strtolower 只是插入标记(当然它什么都不做),而不是它将被替换的内容。

    例如,您可以使用:

    global $objPage;
    echo strtolower($objPage->pageTitle ?: $objPage->title);
    

    echo strtolower($GLOBALS['objPage']->pageTitle ?: $GLOBALS['objPage']->title);
    

    echo strtolower(\Contao\Controller::replaceInsertTags('{{page::title}}'));
    
    推荐文章