strtolower 和 mb_strtolower 不起作用

strtolower and mb_strtolower doesn't work

我有一个存储字符串的变量,它是通过 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');

但是 none 这些方法都有效,我仍然 "Fitness" 得到了 "F"。

我做错了什么?

在将结果发送到浏览器之前,插入标记被 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}}'));