特定の値に置き換えられる特定のフィールドを持つテンプレートがあります。
各フィールドには、中括弧で囲まれた名前が付いています。例:{address}置換値は、インデックスが名前である配列に含まれています。例えばarray('address'=>'101 Main Street', 'city’=>'New York')
私は以下を使用しています、そしてそれは素晴らしい働きをします(ほとんどの場合)
$template_new= preg_replace('/\{\?(\w+)\?\}/e', '$array["$1"]', $template);
問題は{bad_name}
、配列にないが、次のエラーが発生することです。
注意:未定義のインデックス: /var/www/classes/library.php(860)のxxx: 1行 目の正規表現コード
私の望みは、これらを変更せずにそのままにしておくことです。
私の最初の考えはに置き換えることでした$array["$1"]
が(isset($array["$1"])?$array["$1"]': '{'.$1.'}')
、うまくいきませんでした。
try / catchも試しましたが、役に立ちませんでした
推奨事項を提供してください。ありがとうございました