我想要做的只是fopen()PHP 脚本中的一个文本文件。这是我正在构建的模块中最重要的部分。不幸的是,在测试脚本时,我发现脚本无法看到我想要打开的文本文件。我的脚本与文本文件位于同一目录中,但我不断遇到相同的错误。我在下面发布了脚本代码片段和命令行提示/响应。
代码
$membersfile = fopen('./members.txt', 'r');
print_r($membersfile);
fclose($membersfile);
Run Code Online (Sandbox Code Playgroud)
命令行
分段阅读_第 507 章
警告:fopen(./members.txt):无法打开流:第 11 行 /Users/elersong/Desktop/SS2014/register_member.php 中没有此类文件或目录
警告:fclose() 期望参数 1 为资源,布尔值在 /Users/elersong/Desktop/SS2014/register_member.php 第 13 行给出
我不知道为什么 PHP 无法看到该文件,因为它肯定存在,并且与脚本位于同一目录中。请帮助我理解这一点。
某些 PHP 设置的相关部分存在问题,因此请尝试以下操作:
fopen(__DIR__ . '/members.txt', 'r');
Run Code Online (Sandbox Code Playgroud)
__DIR__包含当前正在执行的 PHP 文件所在文件夹的路径。
您目前正在做的事情:
$membersfile = fopen(__DIR__ .'/members.txt', 'r');
print_r($membersfile);
fclose($membersfile);
Run Code Online (Sandbox Code Playgroud)
但$membersfile只包含句柄,一个数字,以便 PHP 现在知道您要打开的文件。如果打印出来,您只会看到句柄号。您需要告诉 PHPP 使用以下命令读取文件:
$file = __DIR__ .'/members.txt';
$membersfile = fopen($file, 'r');
echo fread($membersfile, filesize($file))
fclose($membersfile);
Run Code Online (Sandbox Code Playgroud)
或使用 php 简写函数:
echo file_get_contents( __DIR__ .'/members.txt');
Run Code Online (Sandbox Code Playgroud)