[PHP-users 1486] Re: PHP4.0.4 での Fast Template

Osamu Shigematsu php-users@php.gr.jp
Fri, 24 Aug 2001 13:48:24 +0900


重松です。こんにちは。

> php4 に対応した新しいバージョンなどは、存在するのでしょうか?

は、不明ですが、それほど大きなファイルでないので自分で直しました。

> 何かご存じの方、おられましたら、アドバイスいただければ幸いです。
> また、そのほか、マルチバイト文字で注意する点などありましたら、併せてお知らせ
> 下さい。(eregi? -> mberegi? にするとか)

ということで、結論から言えば、

<?php
    $foo = "FOO";  
    print "{$foo}";
?>

の結果が php3 と php4 で異なることが原因でした。

    php3 -> {FOO}
    php4 -> FOO

となります。

私の場合、配列を表示するときとかに {} でくくってたんですが、もしかしたら
php4 でしか使えないのでしょうか?

<?php
    $a[foo][bar] = "Hello, world!";
    
    print "OK {$a[foo][bar]}<br>";
    print "NG $a[foo][bar]";
?>

また、mbereg() を使うときには、{} がメタ文字のようですので、メタ文字の場合で
もそうでない場合でも動作するように、199 行目などを

    $template = mbereg_replace("[{]".$key."[}]",$val,$template);

のように直してみました。これで、とりあえずは、動いているようです。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp