Как проверить, пуст ли текстовый файл в PHP?
Я пробовал то, что нашел в интернете, и это:
if( '' != filesize('data.txt')){ echo "The file is empty"; } 
ТАКЖЕ ЭТО:
 if( 0 != filesize('data.txt')){ echo "The file is empty"; } 
И ни один из них не работает.
Просто используйте это сначала:
 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)). Вместо этого используйте trim ($ name) == false.
  Прежде всего, равенство – это оператор == – вы делаете обратную проверку прямо сейчас.  Но даже тогда пустота не является абсолютной, вы можете столкнуться с фальшивым текстовым файлом, который на самом деле имеет новую строку или спецификацию UTF-8 (знак байтового байта). 
 if(filesize($path) < 16 && empty(trim(file_get_contents($path))) ) die('This works by definition.'); 
Это должно быть так. Вы проверяете, равен ли размер файла 0. Вам нужен код, если размер файла отличается от 0, а затем он пуст.
 if ( 0 == filesize( $file_path ) ) { // file is empty } 
 if (file_get_contents($file_path) != "") { echo 'file is not empty'; } else { echo 'file is empty'; } 
 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"); ?> 
Я использую file_get_contents для небольших xml-файлов. Следующий код работает для меня, кредит Lex здесь, с объяснением: file_get_contents с пустым файлом, не работающим PHP
 if(file_get_contents($file) !== false) { echo 'your file is empty'; } else { echo 'file is not empty'; } 
  Если файл пуст, файл будет возвращать 0 и мы можем использовать его как boolean , что-то вроде: 
 $txtFile = "someFile.txt"; if( filesize( $txtFile ) ) { // EMPTY FILE } 
Вот несколько вариантов, которые основываются на ответе Нильса Керентджеса на проверку содержимого по размеру. С этими предложениями, если размер файла удовлетворен, его содержимое «включено» на странице. 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: Если / 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.';