我正在创建一个系统来为我正在处理的应用程序生成站点地图,并且生成站点地图的一个要求是每个站点地图的文件大小不应超过10mb(可以看到here的10,485,760字节)。
这是我创建站点地图的代码:
$fp = fopen($this->getSitemapPath() . $filename, 'w');
fwrite($fp, $siteMap->__toString());
fclose($fp);
方法$siteMap->__toString()
最多可容纳50000个链接。
在调用函数fwrite
之前,有没有办法检查生成的文件大小?
答案 0 :(得分:4)
当然,在将字符串写入文件之前,您可以使用mb_strlen
来获取字符串的长度。
$contents = $siteMap->__toString();
if(mb_strlen($contents, '8bit') >= 10485760) {
echo "Oops, this is too big";
} else {
fwrite($fp, $contents);
}