たとえば、次のようなテキストがあります。
XYZ id dui vel erat bibendum hendrerit aliquet ac lorem. Integer ABC turpis, facilisis sit amet ultricies non, tempor LMNOP est. Aliquam sit amet sapien justo. Quisque TUV dolor dolor, eu sodales mi.
太字の単語を番号付きのプレースホルダーに置き換える必要があります。
%%%1%%% id dui vel erat bibendum hendrerit aliquet ac lorem. Integer %%%2%%% turpis, facilisis sit amet ultricies non, tempor %%%3%%% est. Aliquam sit amet sapien justo. Quisque %%%4%%% dolor dolor, eu sodales mi.
この置換を行うには、置換するテキスト (XYZ など) を配列に格納し、プレースホルダーの番号 (1 など) をキーにして、後で戻って元の値に戻すことができるようにする必要があります。
難しいのは、置換テキストが事前にわからないことです。そのため、既に置換されているアイテムの現在の数に基づいて生成するコールバックが必要です。
私は古いバージョンの PHP を実行しており、ツールキットで匿名関数を使用できないため、preg_replace_callback
. 私の問題は、私が作成した ( を使用してcreate_function
) 関数が共有グローバル状態にアクセスできるようにする必要があるという事実に要約されるようです。少なくとも、置き換えられたテキストをプッシュおよびポップできる共有グローバル配列です。スタック。
これは可能ですか?