2016-10-07 7 views
1

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

Это мой код, чтобы создать карту сайта:

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

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

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

+1

Возможно, это поможет вам http://php.net/manual/en/function.fstat.php – Evgeniy

ответ

4

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

$contents = $siteMap->__toString(); 

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

спасибо! он решил мою проблему – CIRCLE

Смежные вопросы