-1

、ファイル\folder\を含む webroot の上にフォルダーがあります。.php.inc.dat

  • 問題なく.phpアクセスできます.inc

  • しかし、使用し.incてアクセスしようとすると、内部で見つからないというエラーが発生します.datfopen('mydat.dat', "rb");mydat.dat \folder\myinc.inc

もちろん.inc、フォルダーではなくファイルであるため、見つけることはできません。なぜphpはそれをそのように扱っているのですか?

.datPHPが内部を見つけようとしている理由はあり.incますか?

または他の代替手段はfopen($filename, "rb")

4

4 に答える 4

1

ファイルシステムの基本を学びます。作業ディレクトリはまだ webroot にあります。\folder\ に変更しません (ただし、新しいバージョンの PHP は現在のファイルの場所内のファイルを検索するようです)。

とにかく、同じディレクトリ内のファイルを開きたい場合dirname(__FILE__)は、常にあなたのためです

myinc.inc で使用できます

fopen(dirname(__FILE__).'/mydat.dat', "rb");
于 2010-04-06T16:14:15.887 に答える
1

あなたのコメントを読んだ後、fopen が include_path を使用することを期待していると思います。

fopen() はデフォルトで include_path を使用しません (include とは異なります)。それはオプションです。マニュアルを参照してください。 http://www.php.net/manual/en/function.fopen.php

于 2010-04-06T17:17:57.650 に答える
0

有効にしているように聞こえますがsafe_mode、 の値がないopen_basedirか、その外にファイルがあります。そのオプションに指定されたパスに .dat ファイルを配置します。

于 2010-04-06T15:47:50.747 に答える
-1

PHPでファイルを扱うときはいつでも。このようなタイプのエラーを回避するには、パスとファイル名を指定する必要があります。

于 2011-05-07T13:08:44.217 に答える