如何检查PHP中的文本文件是否为空?

时间:2014-09-03 07:41:59

标签: php file

如何检查PHP中的文本文件是否为空?

我已经尝试过在互联网上找到的内容:

if( '' != filesize('data.txt')){

    echo "The file is empty";
}

也是这样:

if( 0 != filesize('data.txt')){

    echo "The file is empty";
}

他们似乎没有工作。

8 个答案:

答案 0 :(得分:8)

首先使用它:

if (filesize('data.txt') == 0){
    echo "The file is DEFINITELY empty";
}

如果仍有疑问(取决于对你意味着什么),也可以尝试:

if (trim(file_get_contents('data.txt')) == false) {
    echo "The file is empty too";
}

记下Niels Keurentjes,因为http://php.net/manual/en/function.empty.php说:

  

在PHP 5.5之前,empty()仅支持变量;别的什么都会   导致解析错误。换句话说,以下内容不起作用:   空(修剪($名))。相反,使用trim($ name)== false。

答案 1 :(得分:4)

应该是这样。你检查文件大小是否为0.你的代码询问文件大小是否为0,然后它是空的。

if ( 0 == filesize( $file_path ) )
{
    // file is empty
}

答案 2 :(得分:4)

首先,平等是==运算符 - 您现在正在进行反向检查。但即便如此,空虚也不是绝对的,你可能会遇到假空文本文件,它实际上有换行符或UTF-8 BOM(字节顺序标记)。

if(filesize($path) < 16 && empty(trim(file_get_contents($path))) )
     die('This works by definition.');

答案 3 :(得分:0)

if (file_get_contents($file_path) != "") {
    echo 'file is not empty';
} else {
    echo 'file is empty';
}

答案 4 :(得分:0)

The filesize() function returns the size of the specified file.

This function returns the file size in bytes on success or FALSE on failure.

实施例

<?php
echo filesize("test.txt");
?>

答案 5 :(得分:0)

我将file_get_contents用于小xml文件。以下代码适用于我,在此处归功于Lex,并附有说明:file_get_contents with empty file not working PHP

if(file_get_contents($file) !== false) {
    echo 'your file is empty';
} else {
    echo 'file is not empty';
}

答案 6 :(得分:0)

如果文件为空,filesize将返回0,我们可以将其用作boolean,例如:

$txtFile = "someFile.txt";
if( filesize( $txtFile ) )
{
    // EMPTY FILE
}

答案 7 :(得分:0)

以下是一些选项,它们基于Niels Keurentjes提供的答案,以按大小范围检查内容。有了这些建议,如果满足文件大小,其内容将“包含”在页面上。 http://php.net/manual/en/function.include.php

两者都检查文件是否存在,然后根据大小(以字节为单位)对其进行评估。如果文件大小大于或等于5个字节,则打印成功消息并包含文件内容。如果找不到文件或小于5个字节(实际为空),则会显示错误消息并且不包含该文件。出错时,会影响clearstatcache以防止文件结果保留在页面刷新上。 (我已尝试使用/不使用clearstatcache,它确实有帮助。) http://php.net/manual/en/function.clearstatcache.php

可以输入文件本身:

As a string throughout: 'file.txt'
As a variable: $file = 'file.txt';
As a constant (per examples): define ('FILE', 'file.txt');

选项#1:功能

   <?php
    define ('FILE', 'file.txt');

    function includeFile() {
    if (file_exists(FILE))
    {
    echo 'File exists!' . '<br>';
    if (filesize(FILE) >= 5)
    {
    echo 'File has content!' . '<br>';
    include FILE;
    } else {
    echo 'File is empty.';
    clearstatcache();
    }
    }
    else {
    echo 'File not found.';
    clearstatcache();}
    }
    includeFile(); // call the function
    ?>

选项#2:If / Else Statement

<?php
define ('NEW_FILE', 'newfile.txt');

if (file_exists(NEW_FILE) && (filesize(NEW_FILE)) >= 5){
echo 'File exists and has content!' . '<br>';
include NEW_FILE;
}
else {
echo 'File not found or is empty.';
clearstatcache();
}
?>

验证可以删除:

echo 'File exists!' . '<br>';
echo 'File has content!' . '<br>';
echo 'File is empty.';
echo 'File not found.';
echo 'File exists and has content!' . '<br>';
echo 'File not found or is empty.';