2016-10-07 170 views
1

我正在爲我正在創建的應用程序創建一個系統來生成站點地圖,而生成站點地圖的要求之一是每個站點地圖的文件大小不應超過10mb(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

相關問題