0

正規表現は私を泣かせるので、私は助けを求めてここに来ました。

PanicのCodaでの検索と置換に関するヒントを探しています。F&Rがかなり進んでいることは知っていますが、これを行うための最良の方法を探しています。「テンプレートエンジン」(非常に基本的なもの)を書き直そうとしています。PHPでコーディングしているWebアプリ(CodeIgniter)を使用しています。

現在、私は自分のテンプレートを次のように呼んでいます。

$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view('subviews/template/sidebar');
$this->load->view('The-View-I-Want-To-Load');   // This is the important line
$this->load->view('subviews/template/footerview');

ただし、異なるコントローラーごとに異なるページをロードするたびに5行のコードを使用するのは非効率的です。だから私はそれを次のように書き直しました:

$data['view'] = 'The-View-I-Want-To-Load';
$this->load->view('template',$data);

そうすれば、デザインに大きな変更を加える必要がある場合は、template.phpビューファイル(ヘッダー、メニュー、サイドバービューなどを含む)から簡単に行うことができます。

ただし、以前の5行は、さまざまなコントローラーや機能で使用されています。だから、私の質問は---古いテンプレートエンジン(5行のコード)を見つけて新しいものに置き換えるにはどうすればよいですか-$data['の重要な一意の行のビューの名前に置き換えます見る]?

それは意味がありますか?!そうでなければ、言い換えてみます!つまり、正規表現などを介してこれを行う方法はありますか?それとも私はここで完全に間違った行にいますか?

4

1 に答える 1

1

正規表現は次のようになります。

\$this->load->view\('subviews/template/headerview'\);\n\$this->load->view\('subviews/template/menuview'\);\n\$this->load->view\('subviews/template/sidebar'\);\n\$this->load->view\('([^']*)'\);\n\$this->load->view\('subviews/template/footerview'\);

と置き換えます

\$data['view'] = '$1';\n\$this->load->view('template',\$data);
于 2010-04-12T11:18:06.750 に答える