我正在尝试创建一些代码,允许我保存一个csv文件,这是在php页面上创建的,而不是打开它(就像当前那样)我理想情况下会自动将其保存到我的目录中的文件夹。我已经环顾四周并找到了fwrite,但我不能100%确定这是否是我需要的。我应该注意到我使用的代码是在一个while循环中,所以它可以多次点击$ line部分。文件名和fd部分在循环之外。
(在循环之外)
$filename = "Product_category_list".date("j-m-Y_H.i"). ".csv";
$fd = fopen ($filename, "w");
//The below is in a while loop
$line = $separator . $sku_product . $separator . $delim; // Product SKU
$line .= $separator . $sku . $separator . $delim; // SKU
$line .= $separator . $category_lists . $separator . $delim; // Category Path
$line .= $separator . $product_name . $separator . $delim; // Product Name
$line .= $separator . $product_description . $separator . $delim; // Product Description
$line .= $separator . $image_link. $separator . $delim; // Full Image
$line .= $separator . $image_link_thumb. $separator . $delim; // Thumb Image
$line .= $separator . $rrp_manual . $separator . $delim; // RRP
$line .= $separator . $uk_wholesale . $separator . $delim; // Cost Price / Wholesale Price
$line .= $separator . "GBP" . $separator . $delim; // Currency
$line .= $separator . $tax_id . $separator . $delim; // Tax ID
$line .= $separator . $discount . $separator . $delim; // Discount
$line .= $separator . " " . $separator . $delim; // Discount End
$line .= $separator . "1000" . $separator . $delim; // Product In Stock
$line .= $separator . " " . $separator . $delim; // Product Special
$line .= $separator . $delivery_front_text . $separator . $delim; // Product Availability
$line .= $separator . "Y" . $separator . $delim; // Product Published
$line .= $separator . $attribute_list . $separator . $delim; // Product Attribute
$line .= $separator . $custom_attribute . $separator . $delim; // Custom Attribute - Could just be Please Enter your Personalisation Details Below (Only if Embroided Name or printed Initial)
//$line .= $separator . " " . $separator . $delim; // Kitlocker Attribute - Size Guides
// $line .= $separator . " " . $separator . $delim; // Related Products
//$line .= $separator . " " . $separator . $delim; // Alternative Products
// $line .= $separator . " " . $separator . $delim; // Colour Products
$line .= $separator . $manu . $separator . $delim; // Manufacturer Name
$contents .= $line . "\n";
(outside of the loop)
fputs($fd, $contents);
fclose($fd);
答案 0 :(得分:0)
您可以直接运行
while($condition){
fwrite($fd, $data . ";\n");
}
在您的循环中,而不是将其全部分配给$line
(如果是大文件,您可能会内存不足)或者您坚持将所有数据分配到$line
首先,然后移除fopen
和fputs
行,并在循环运行后file_put_contents($filename, $contents);
答案 1 :(得分:0)
我最后一次做这样的事情时,我使用了Headers。
Header("Content-type: application/csv");
Header("Content-disposition: attachment; 'Product_category_list'.date('j-m-Y_H.i').'.csv\'");
这会将PHP代码的结果保存为CSV文件。您可以调整浏览器的设置以自动将其保存到指定位置。