php - Joomla:K2-preg_replaceを使用してメタ記述から中括弧を取り除く方法

原文 php joomla metadata curly-brackets k2

joomla/K2によって作成されたメタ記述からいくつかの中括弧を取り除く必要があります。

不要な中括弧を取り除く2つの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);を使用する-これらは正規表現では特殊文字であるため、\{の前に}を使用する必要があるため、バックスラッシュでエスケープする必要があります。
関連記事

php - 2つのテーブルを結合し、cakephpの3番目のコントローラーにデータを表示します

php - プロパティの代わりにゲッターに基づいてsymfonyコレクションを検証する

php - Yii変更をローカルマシンにキャッシュ

php - Wamp Serverが保存されているフォルダーから.pdfおよび.docxファイルをダウンロードするためのPHPコード

php - フォームから選択した複数のPHPエコーバック

php - 別のページとしてページに投稿する-Facebook API

php - 最初の行のみを表示する演算子間のMySQL

php - 特定の投稿からWordpressブログフィードを開始する

php - laravelのCron(https://github.com/liebig/cronを使用)

php - Joomlaの兄弟アイテムを一覧表示します! K2商品ページ