dongshi1215 2018-03-23 12:31
浏览 135
已采纳

strtolower和mb_strtolower不起作用

I have a variable in which a string is stored, which is supplied via an insert tag of the CMS Contao.

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

The value of the string is at this point "Fitness" with a big "F". I would like to have this string completely in lowercase letters.

I have already tried the following:

// 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');

But none of these approaches work and I still get "Fitness" with a big "F".

What am I doing wrong?

  • 写回答

1条回答 默认 最新

  • dongyi2006 2018-03-23 12:46
    关注

    Insert Tags are replaced by Contao before the result is sent to the browser. You are trying to strtolower just the insert tag (which does nothing of course) - not the content it will be replaced by.

    For your example you can use:

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

    or

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

    or

    echo strtolower(\Contao\Controller::replaceInsertTags('{{page::title}}'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?