创建前检查文件大小

我正在创建一个系统来为我正在处理的应用程序生成站点地图,其中一个要求是 生成站点地图是每个站点地图的文件大小不应超过10mb(10,485,760字节),如此处所示 。 </ p>

这是我创建站点地图的代码:</ p>

  $ fp = fopen($ this-&gt; getSitemapPath()。$ filename  ,'w'); 
nfwrite($ fp,$ siteMap-&gt; __ toString());
nclclose($ fp);
</ code> </ pre>

方法 $ siteMap-&gt; __ toString()</ code>最多包含50000个链接。</ p>

在调用函数 fwrite <之前,有没有办法检查生成的文件大小? / code>?</ p>
</ div>

展开原文

原文

I'm creating a system to generate sitemaps for a application I'm working on, and one of the requirements for generating sitemaps is that each sitemap shouldn't have a file size greater than 10mb (10,485,760 bytes) as can be seen here.

This is my code to create the sitemap:

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

The method $siteMap->__toString() holds a maximum of 50000 links.

Is there a way to check the resulting file size before calling the function fwrite?

dpw50696
dpw50696 也许这有助于你php.net/manual/en/function.fstat.php
大约 4 年之前 回复

1个回答



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

  $ contents = $ siteMap-&gt; __ toString(  ); 

if(mb_strlen($ contents,'8bit')&gt; = 10485760){
echo“哎呀,这太大了”;
}其他{
fwrite($ fp,$ contents);

}
</ code> </ pre>
</ div>

展开原文

原文

Sure, you can use mb_strlen to get the length of your string before you write it out to a file.

$contents = $siteMap->__toString();

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

doufangxie0203
doufangxie0203 谢谢! 它解决了我的问题
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐