Проверка размера файла перед созданием

#php #filesize

#php #размер файла

Вопрос:

Я создаю систему для создания карт сайта для приложения, над которым я работаю, и одним из требований для создания карт сайта является то, что каждая карта сайта не должна иметь размер файла больше 10 МБ (10 485 760 байт), как видно здесь .

Это мой код для создания карты сайта:

 $fp = fopen($this->getSitemapPath() . $filename, 'w');
fwrite($fp, $siteMap->__toString());
fclose($fp);
  

Метод $siteMap->__toString() содержит максимум 50000 ссылок.

Есть ли способ проверить результирующий размер файла перед вызовом функции fwrite ?

Комментарии:

1. Может быть, это поможет вам php.net/manual/en/function.fstat.php

Ответ №1:

Конечно, вы можете использовать mb_strlen , чтобы получить длину вашей строки, прежде чем записывать ее в файл.

 $contents = $siteMap->__toString();

if(mb_strlen($contents, '8bit') >= 10485760) {
    echo "Oops, this is too big";
} else {
    fwrite($fp, $contents);
}