2016-10-07 4 views
1

Ich erstelle ein System zum Erstellen von Sitemaps für eine Anwendung, an der ich arbeite, und eine der Anforderungen für das Erstellen von Sitemaps ist, dass jede Sitemap nicht eine Dateigröße größer als 10 MB (10.485.760) haben sollte Bytes) wie ersichtlich here.Überprüfen Sie die Dateigröße vor der Erstellung

Dies ist mein Code, um die Sitemap zu erstellen:

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

Das Verfahren $siteMap->__toString() hält maximal 50000 Links.

Gibt es eine Möglichkeit, die resultierende Dateigröße vor dem Aufruf der Funktion fwrite zu überprüfen?

+1

Vielleicht helfen Ihnen – Evgeniy

Antwort

4

Sicher, Sie können mb_strlen verwenden, um die Länge der Zeichenfolge zu erhalten, bevor Sie es in eine Datei schreiben.

$contents = $siteMap->__toString(); 

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

http://php.net/manual/en/function.fstat.php danke! es hat mein Problem gelöst – CIRCLE

Verwandte Themen