5

PHPのフォルダ内のファイルを開きたいのですが。問題は、ファイルを含むフォルダーの名前にスペースが含まれている可能性があることです。私がファイルを開くために使用する(そして機能しない)コードは次のとおりです。

$myFile = "path/to the/file.txt";
$myFile = str_replace(' ', '\ ', $myFile);
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
echo $theData;

ご覧のとおり\、スペースの前にを置いて問題を解決しようとしていますが、これでは問題は解決しません。それでも次のエラーが発生します。

Warning: fopen(path/to\ the/file.txt) [function.fopen]: failed to open stream: No such file or directory in /path/to/my/website on line 49

この問題を解決する方法について何かアイデアはありますか?

ありがとう!

4

1 に答える 1

9

コマンドラインのスペースは引数の区切り文字であるため、バックスラッシュはコマンドラインのスペースをエスケープするために使用されます。PHPではそのような問題はありません。に任意の文字列をfopen指定すると、この1つの文字列が1つのパスであることが期待されます。このコンテキストでは意味がないため、パスをスペースで個別の引数に分割することはありません。

したがって、円記号は追加しないでください。パスpath/to\ the/file.txtはパスと同じではありませんpath/to the/file.txt

于 2012-09-03T08:24:17.820 に答える