[PHP-users 14389]Re: requireとflockについて

しょうなり[ml] ml @ webappli.jp
2003年 3月 31日 (月) 15:03:38 JST


しょうなりです。

WADA Masashi さんは書きました:
> 手元で試したら、Windows2000/PHP4.3.1 の環境では test2.php の結
>果は次のようになりました。
>
>require...
>Fatal error: input in flex scanner failed in c:\www\htdocs\dummy.inc on line 1
>
> また NetBSD1.6/PHP4.2.2 の環境では、test2.php の結果は、
>test1.php の結果が表示される前に
>
>require...end.
>
>と出てきます。結局のところ、require する前に、何らかの処理が必要
>になるでしょう。

ということは、よくCGIの掲示板で使われるmkdirやsymlinkなどによる
ロック処理を書けばよさそうですね。

flock()をどうしても使いたい場合は、

function locked_require($fname) {
 $FP = fopen($fname, "r");
 flock($FP, LOCK_SH);
 eval("?>".fread($FP, filesize($fname)));
 flock($FP, LOCK_UN);
 fclose($FP);
}

という関数を作って、require()の変わりに使ってみてはどうでしょうか?
(あ、この関数で読み込んだファイル内の変数は GLOBALSにならないですね)


-- 
	しょうなり@信州 肥田昌也
	" War is not good whatever may be "
		Email:     shounari @ webappli.jp
		HomePage:  http://www.webappli.jp/


PHP-users メーリングリストの案内