Joomla:K2 - 如何使用 preg_replace 从元描述中去除大括号
Joomla: K2 - How to strip out curly brackets from meta description using preg_replace
我需要从 joomla/K2
创建的元描述中删除一些大括号。
我找到了两个 php
解决方案来去除不需要的大括号:
$description = preg_replace( '/{.+?}/', '', $description);
和
$metaDescItem = str_replace('/{.+?}/', '', $metaDescItem);
有不同的花括号控制我的应用程序的内容:
{123456789}, {123456789,123456789}, {URL}, {}
最好的解决方案是去掉元描述输出中的任何大括号。
我是php的新手,我不确定哪个函数是正确的。
下一个问题是,我不知道在 K2 的 php
文件中的什么地方插入函数。
我想我找到了生成元描述的正确 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);
- 你需要在 {
和 }
之前使用 \
因为它们是正则表达式中的特殊字符,所以你需要用反斜杠转义它们.
我需要从 joomla/K2
创建的元描述中删除一些大括号。
我找到了两个 php
解决方案来去除不需要的大括号:
$description = preg_replace( '/{.+?}/', '', $description);
和
$metaDescItem = str_replace('/{.+?}/', '', $metaDescItem);
有不同的花括号控制我的应用程序的内容:
{123456789}, {123456789,123456789}, {URL}, {}
最好的解决方案是去掉元描述输出中的任何大括号。
我是php的新手,我不确定哪个函数是正确的。
下一个问题是,我不知道在 K2 的 php
文件中的什么地方插入函数。
我想我找到了生成元描述的正确 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);
- 你需要在 {
和 }
之前使用 \
因为它们是正则表达式中的特殊字符,所以你需要用反斜杠转义它们.