Мне нужно вычеркнуть несколько фигурных скобок из описания мета, которое создается joomla/K2
,
Я нашел два php
Решения для удаления ненужных фигурных скобок:
$description = preg_replace( '/{.+?}/', '', $description);
а также
$metaDescItem = str_replace('/{.+?}/', '', $metaDescItem);
Существуют различные фигурные скобки, которые контролируют содержимое моего приложения:
{123456789}, {123456789,123456789}, {URL}, {}
Лучшим решением было бы избавиться от любой фигурной скобки в выводе мета-описания.
Я новичок в php, и я не уверен, какая функция является правильной.
Следующая проблема заключается в том, что я не знаю, где вставить функцию в php
файл К2.
Я думаю, что нашел правильный php
файл, который генерирует мета-описание.
Вот цитата из /components/com_k2/views/item/view.html.php
:
// Set metadata
if ($item->metadesc)
{
$document->setDescription((K2_JVERSION == '15') ? htmlspecialchars($item->metadesc, ENT_QUOTES, 'UTF-8') : $item->metadesc);
}
else
{
$metaDescItem = preg_replace("#{(.*?)}(.*?){/(.*?)}#s", '', $item->introtext.' '.$item->fulltext);
$metaDescItem = strip_tags($metaDescItem);
$metaDescItem = K2HelperUtilities::characterLimit($metaDescItem, $params->get('metaDescLimit', 150));
$document->setDescription(K2_JVERSION == '15' ? $metaDescItem : html_entity_decode($metaDescItem));
}
использование $description = preg_replace( '@\{.+?\}@', '', $description);
— вам нужно использовать \
до {
а также }
потому что это специальные символы в регулярном выражении, поэтому вам нужно экранировать их обратной косой чертой.
Других решений пока нет …