У меня есть переменная, в которой хранится строка, которая предоставляется через тег вставки CMS Contao.
category = "{{page::title}}";
Значение строки в этой точке «Фитнес» с большой буквой «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».
Что я делаю неправильно?
Теги вставки заменяются на 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}}'));
Других решений пока нет …