いやはや苦労しました。
あるファイルから読み込んできた文章中の特定の値を
変数名に変換し、その変数値に置き換える処理。
通常の置換では、どうもうまくいかず、
検索しようにも、なんて検索していいのか分からず四苦八苦。。。
こういうことは恐らくsmartyを使えば簡単なんだと思うのですが、
自分自身まだまだsmartyすらそれほど知識にありません。。。
とりあえず備忘録としても、ソースコードを記述しておきます。
同じようなことで困っている人のためにもお役に立てれば幸いです。
$hc = 'ブレイン・エイチシー';
$hp = 'ホームページ制作';
$text = <<<__HTML__
%%__hp__%%に役立つ!%%__hc__%%
%%__hp__%%の備忘録サイト
__HTML__;
$array_text = explode("%%", $text);
foreach($array_text as $val){
if(ereg("__([a-zA-Z]*)__",$val,$item_us_name)){
$val= preg_replace("/__([a-zA-Z]*)__/", ${$item_us_name[1]}, $val);
}
$printSorce .= $val;
}
print $printSorce;
【処理結果】
ホームページ制作に役立つ!ブレイン・エイチシー
ホームページ制作の備忘録サイト
ホームページ制作に役立つ!ブレイン・エイチシー
ホームページ制作の備忘録サイト
どうやら通常の置換処理では、置換後の値は文字列となってしまうようです。
$printSorce = preg_replace("/%%__([\s\S]*?)__%%/", "$$1", $text);
【処理結果】
$hpに役立つ!$hc
$hpの備忘録サイト
$hpに役立つ!$hc
$hpの備忘録サイト
ではNGでした。



