我想用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。
将大数据写入文件是否有更好的方法?或者我如何优化写入文件以变小?
答案 0 :(得分:4)
您在while循环中连接$feedRow
。这将一次又一次地追加上一行。
将$feedRow
初始化为while循环中的空白
while ($row = $mp->getRows()) {
$feedRow = '';
...
}