我有這個PhP代碼在用戶點擊一個按鈕,它會自動下載一個.csv文件,它裏面是不同種類的信息。所以這個.csv文件是逗號分隔的,所以只要有一個逗號,指針就會進入下一個單元格。但我想將分隔符更改爲逗號以外的任何內容,因爲我的某些數據具有逗號,例如「位置」列中包含501A和501B等數據,並且它需要位於單個單元格中。但是,它會轉到另一個單元格,因此當我以縱向打印時,id不適合。所以我只是想問一下如何改變分隔符並用逗號來維護數據?謝謝!PhP導出.csv從逗號更改分隔符到其他人
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "");
define("DB_NAME", "envoy");
function db_connect() {
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die("ERROR!");
mysqli_select_db($db, DB_NAME);
return $db;
}
$db = db_connect();
date_default_timezone_set("EST5EDT");
$date = date('m-d-Y,h.i.sa');
$date2 = date('m/d/Y');
$filename = $date.'.csv';
//$fp = fopen($filename,"w");
$sql2 = "SELECT sku as Sku,name as 'Brochure Name',location as Location FROM brochureinfo where modified LIKE '$date2' ORDER BY name ";
$rs2 = mysqli_query($db, $sql2);
$total_records = mysqli_num_rows($rs2);
mysqli_close($db);
if($total_records>0){
$row = mysqli_fetch_assoc($rs2);
$seperator = "";
$comma = "";
foreach ($row as $name => $value){
$seperator.= $comma. ''.str_replace('','""',$name);
$comma=",";
}
$seperator .= "\n";
//echo $seperator;
mysqli_data_seek($rs2,0);
while ($row = mysqli_fetch_assoc($rs2)){
//$seperator = "";
$comma = "";
foreach ($row as $name => $value){
$value = str_replace(array("\r" , "\n", "\r\n", "\n\r") ,'' , $value);
$value = str_replace('</b><br>','',$value);
$value = str_replace('<b>','',$value);
$value = str_replace('<br>','',$value);
$value = str_replace('<br />','',$value);
$seperator.= $comma. ''.str_replace('','""',$value);
$comma=",";
}
$seperator .= "\n";
}
header('Content-Type: text/csv');
header("Content-Disposition: attachment; filename=$date.csv");
header('Pragma: no-cache');
echo $seperator;
}
else{
header('Content-Type: text/csv');
header("Content-Disposition: attachment; filename=$date.csv");
header('Pragma: no-cache');
echo "No record modified today";}
那麼我會替換哪一個?對不起回合愚蠢的問題 – jeeeee
好吧,編輯,見上面 – mnv
謝謝,但我不能使用fopen();因爲它會在我的.php文件的文件夾中生成一個文件。但我試圖用fopen並刪除$ seperator現在它不顯示任何東西。 – jeeeee