ショートコードを持つCMSを変更しています。ショートコードは次のようになります。ショートコードの最初のオカレンスだけを置換する
[code]Total_Public_Activities id=1 type=table[/code]
CMSページに複数のショートコードが含まれる可能性があります。ユーザーが誤って同じショートコードを複数回使用する可能性があります。私の状況では、同じショートコードを複数回使用すると、2番目の項目が表示されず、JavaScriptエラーが発生しました。これは、CMSが使用していたためです。
str_replace($searchStr, $myContent, $getCmsPage->page_content);
これにより、2つの要素のような重複したコンテンツ要素がページに配置されました。 JavaScriptには問題がありました。私はその行をpreg_replaceを使うように変更しました。
preg_replace($escapedSearchPattern, $myContent, $getCmsPage->page_content);
マイ$ escapedSearchPatternは、次のようになります。
/\[code\]Total_Public_Activities id=1 type=table\[\/code\]/
しかし、にpreg_replaceは、それがPAGE_CONTENTに挿入する際に$ myContent置換コンテンツ文字列を変更するようです。 1つの例では、datatables.jsテーブルがあり、1行の要素のそれぞれに$ searchStr(つまりショートコード)が配置されています。なぜpreg_replaceは期待どおりに動作しないのですか? PHPを使用してショートコードの最初のインスタンスを置き換えるにはどうすればよいですか?
あなたが述べパラメータとして制限を設定することができますhttp://php.net/manual/en/function.preg-replace.php –
これはカスタムCMSまたは既存の製品ですか? – Scuzzy
@UlrikMcArdle:これを答えにする必要があります! – Toto