web-dev-qa-db-ja.com

str_replace()を使用する必要がありますか、それともdrupalより良い方法がありますか?

背景情報:サイトのユーザーにメッセージを送信するD7モジュールを作成しています。サイトのメンテナーが次のように「トークン」を使用してメッセージを定義できるようにしたいと思います。

$string = "hello :username, there is a new node called :nodenodename_with_a_link on the :website"; // defined in the GUI

Str_replaceを使用して、これらの「トークン」を次のように置き換えることができます。

$find = array(':username', ':nodenodename_with_a_link', ':website');
$replace = array($username, $node, $sitename); // generated form the db
$newstring = str_replace($find, $replace, $string);

しかし、これがDrupal(7)に進む正しい方法でもあるかどうか疑問に思っていますか?

4
FLY

カスタムモジュールで独自のトークンを作成するか、strtrを使用できます(複数の検索および置換操作の方がstr_replaceよりも簡単です)。

カスタムトークンを作成し、トークンモジュールと統合する方法を確認するには、 Examplestoken_exampleモジュールを参照してください。

2
Aram Boyajyan