PHP5の環境で以下のような文章($text)の文字列([okikae:102260])を置き換えたいと考えています。


置換前
---
あいうえおあいうえお
[okikae:102260]
あいうえおあいうえお
---

置換後
---
あいうえおあいうえお
かきくけこ
あいうえおあいうえお
---

[okikae:102260]の102260は、データベースのIDになっており、
henkan関数で該当IDの情報(かきくけこ)が出力されるようになっています。

以下のようにpreg_replaceを行ったのですが、「\\1」が「\1」と出力されてしまい、
henkan関数に正しいIDを渡すことができません。

preg_replace('/\[okikae:(.*[0-9])\]/m',henkan('\\1'),$text);

解決方法がありましたらお教えください。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/04/04 18:45:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:GoldenDawn No.1

回答回数426ベストアンサー獲得回数81

ポイント60pt

これでどうでしょうか。

<?php
preg_replace('/\[okikae:(.*[0-9])\]/me', 'henkan(\1)', $text) ;
id:charque

お教えいただいたコードで動作しました。

ありがとうございます!

2011/04/04 18:44:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません