PHP未读取文件


PHP not reading file?

我不知道哪里出了问题。我已经将问题缩小到$file没有设置为任何内容,我不知道哪里出了问题。请帮助:)

代码:($_GET['unit']为1)

                $filepathhalf = "http://sureclean.netai.net/data/";
                $date = date("Ymd");
                $unitnum = $_GET['unit'];
                $ext = ".txt";
                $filepath = $filepathhalf.$unitnum.$date.$ext;
                $bool = file_exists($filepath);
                if($bool = true)
                {
                    $fh = fopen($filepath, 'r');
                    $file = fread($fh, 4);
                    fclose($fh);
                }
                else{};
                $file = strval($file);
                echo $file;

您的网站/data/120120714.txt:

true

文件存在

名为file_exists的函数仅适用于本地文件,您无法检查web上的资源(通过HTTP)是否可用。

再加上您在下面的代码段中使用赋值而不是比较,这就导致了脚本的错误行为。

if($bool = true) 
  { ... }

fopen

fopen并不总是允许从外部源读取,但您确定这是必需的吗?如果你的文件确实是本地的,请不要尝试在网上阅读,因为你可以用更简单的方式访问它。


fread

fread的第二个参数指定要读取的最大字节数,当前已指定4

目前,您正在尝试从存储在$fh中的文件句柄读取4字节,实际上您正在读取这四个字节。

$file将只包含空格,因为如果您在问题中正确缩进了yourwebsite/data/120120714.txt的内容,那么这就是存储在文件前四个字节中的内容。


我该如何一次阅读整个文件

PHP提供了一个名为file_get_contents的函数,它将读取整个文件并将其作为字符串返回,但如果您真的在寻找使用fread读取文件的方法,则应该使用以下内容:

$file_data = fread ($fh, filesize ($filename));

if条件下的矿工错误:

if($bool == true)
{
     // do the stuff
}
else{
     // also show some message here if file does not exists.
}

您可以使用其他一些函数来读取文件。类似:file('filename.txt');或file_get_contents("filename.txt");