人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

中身に{$q1}={$q2}の記載のある設定ファイルのsetting.txtを作りました。

コレをPHPで読み込む際に、{$q1}等の{}に囲まれたものをPHP内で$array['q1']等の配列内の値に置換したいと思っております。

正規表現を色々試してもうまくいきません。
良い方法はありませんでしょうか?

●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP txt ファイル 作りました 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント
$a = array('q1' => 'a', 'q2' => 'b');

$b = '{$q1}={$q2}';

$c = preg_replace('/{\$([^}]+)}/e',"\$a['$1']",$b);

パターンのほうは式を展開しないように'シングルクォーテーション'で囲み、

置換後文字列のほうでは式を展開するように"ダブルクォーテーション"で囲む。

PHP: preg_replace - Manual


2 ● Mook
●35ポイント

PHP で処理するサンプルを作成してみましたが、参考になるでしょうか。

<?
// データ定義
$arr= array( 'q1'=>'Apple', 'q2'=>'Banana' );

// 入力文字列
$dat = '{$q1} != {$q2}';

// 正規表現で検索した結果を $match に格納
preg_match_all( '/\{\$.+?\}/', $dat, $match );

for ( $i=0 ; $i<count($match[0]) ; $i++ ) {
// 配列のデータで置換
 $dd = preg_replace( '/\{\$/', "", $match[0][$i] );
 $dd = preg_replace( '/^\}$/', "", $dd );
 $dat = str_replace( $match[0][$i], $arr[$dd], $dat );
}

// 結果の表示
print $dat;
?>

PHP preg_match

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ