#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);
}