我不知道哪里出了问题。我已经将问题缩小到$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");