创建前检查文件大小

Check file size before creation

我正在创建一个系统来为我正在处理的应用程序生成站点地图,生成站点地图的要求之一是每个站点地图的文件大小不应大于 10mb(10,485,760 字节),因为可见here

这是我创建站点地图的代码:

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

方法 $siteMap->__toString() 最多包含 50000 个链接。

有没有办法在调用函数之前检查生成的文件大小fwrite

当然,您可以在将字符串写入文件之前使用 mb_strlen 获取字符串的长度。

$contents = $siteMap->__toString();

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