Windows 2000 サーバーに XAMPP をインストールしました。PHP fopen 関数を除いて、すべてがうまく機能しています。それを使用してファイルを作成したり開いたりすることはできません。奇妙なことに、/require/file_get_contents/その他のファイル関連関数を含めることができます。また、fopen はエラーを生成せず、NULL を返すだけであることも通知しません。
私は、ファイルとそれを囲むすべてのフォルダーの完全な制御を全員に許可するところまで行ってきましたが、ファイル ポインターの代わりに NULL を取得します。
私はこれをphp 5.2.9、5.2.13、および5.3.1で試しましたが、同じ効果がありました。php.ini ファイルを調べて、壊れているものを探しました。fopenが動作しているLinuxボックスから基本的なiniファイルを削除して使用しようとしましたが、まだ何もしていません。
私は自分のiniとそのすべてを変更した後、Apacheを再起動する必要があることを知っています(私はサーバーを再起動しました)ので、そうではありません。
どういうわけかApacheの構成の問題であると仮定して、私はこの問題に取り組んでいます。明日、確認するためにphp-cliを介してテストを実行します。
これで頭を悩ませたくないのですが、apache/php ウィザードが役に立ちますか?
回答ありがとうございます。そうです、構成の問題ではありません。問題は、dll の 1 つまたは含まれているファイルの 1 つにあるはずです。インクルードなしで新しいファイルで機能しない同じコードを試しました。カスタム ライブラリを無効にしたところ、機能しました。
記録として、私が行っていてうまくいかなかったのは次のとおりです。
$test_file = 'c:\\test.csv';//everybody has full control. is very large.
if(file_exists($test_file) && is_readable($test_file)){
$fp = fopen($test_file, 'r');
echo var_export($fp, true);//outputs NULL. on my linux box this is a number.
if($fp !== false){
//do the work
fread($fp, 10);//throws the error that $fp is not a valid file handle
}
}
私が含めているものは、何らかの形で fopen を壊しているに違いありません。インクルードのない新しいファイルで期待どおりに動作します。