php写入文件 - 文件变得很大(优化文件大小或其他方法)

时间:2018-04-02 13:05:40

标签: php

我想用DB(mysql)

中的产品创建一个feed(.txt文件)

Feed文件中的每一行都应如下所示: 产品代码|类别|品牌|价格| ......和其他8列。

我使用的代码:

$feedFile = fopen(APP_PATH."external_feed.txt", "w") or die("Unable to open file!");
$feedRow = ''; 
$s = '|';
ini_set('max_execution_time', 300);
while ($row = $mp->getRows()) {
    $feedRow = $feedRow .$row['ClientCode'].
        $s.$row['CategoryName'].
        $s.$row['Brand'].
        $s.$row['Name'].
        $s.$row['Price'].
        $s."in stock".
        $s."free shipping".
        $s."no warranty".
        $s.$url_to_product.
        $s.$url_to_image.
        $s.$row['Description']."\n";
    fwrite($feedFile, $feedRow);
}
fclose($feedFile);

用2275个产品写完文件后,文件大到12GB。

将大数据写入文件是否有更好的方法?或者我如何优化写入文件以变小?

1 个答案:

答案 0 :(得分:4)

您在while循环中连接$feedRow。这将一次又一次地追加上一行。

$feedRow初始化为while循环中的空白

while ($row = $mp->getRows()) {
    $feedRow = '';
    ...
}