Php8, пустой файл или несуществующий файл: Неустранимая ошибка: Uncaught TypeError: fread()
Смена сервера, переход на php 8.
У меня есть файл, который создает карты сайта, читает предыдущий и добавляет новые строки.
Но теперь при первом запуске я получаю такие ошибки:
Fatal error: Uncaught TypeError: fread(): Argument #1 ($stream) must be of type resource ...
Fatal error: Uncaught ValueError: fread(): Argument #2 ($length) must be greater than 0 ...
И это совершенно очевидно, потому что это тот же самый скрипт, который создает файл, который он хочет прочитать, поэтому нормально, что вначале файл не существует ...
Php 7 проигнорировал это, если файл не существовал, это не было проблемой, он создал его при следующем запуске, он прочитал его без проблем, для php 8 вместо этого это кажется проблемой.
Я также попытался добавить, если это проверяет, существует ли файл:
if(file_exists($filename)) {
$handle = fopen($filename, "r");
$filesitemapopen = fread($handle, filesize($filename));
}
Но php 8 все равно жалуется ...
И даже если я добавлю пустой файл, он говорит: «должно быть больше 0», но я не могу заполнить его чем-то наугад ... он должен быть сгенерирован из того же файла с URL-адресами для добавления в карту сайта .
Как мне это решить? Это небольшая проблема, потому что карты сайта растут, и время от времени создается новый файл, который сначала будет пустым или не будет существовать ...