2

我需要从由joomla/K2.

我找到了两种php去除不需要的大括号的解决方案:

$description = preg_replace( '/{.+?}/', '', $description);

$metaDescItem = str_replace('/{.+?}/', '', $metaDescItem);

有不同的大括号可以控制我的应用程序的内容:

{123456789}, {123456789,123456789}, {URL}, {}

最好的解决方案是去掉元描述输出中的任何大括号。

我是 php 新手,我不确定哪个函数是正确的。

下一个问题是,我不知道在phpK2 的文件中插入函数的位置。

我想我找到了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));
    }
4

1 回答 1

0

使用$description = preg_replace( '@\{.+?\}@', '', $description);- 你需要使用\before{并且}因为这些是正则表达式中的特殊字符,所以你需要用反斜杠转义它们。

于 2015-02-09T13:36:45.093 回答