![](/img/trans.png)
[英]Dynamic creating of table upon CSV file upload using MySQL and PHP
[英]Creating a CSV file from MySQL table using php
此代码创建一个csv文件。 但是,我避免在字段中打印逗号,因为它用作分隔符(请参见第22行)。 现在,我想从字段中删除(回车和换行)。 添加$ somecontent。= str_replace(“ \\ n”,“”,$ val); 在第23行似乎不起作用。 有任何想法吗?
@chmod($export_csv, 0777);
$fe = @fopen($export_csv."/export.csv", "w+");
if($fe){
$somecontent = "";
$fields_count = 0;
// print field headers
$db->query($sql_view);
if($row = $db->fetchAssoc()){
foreach($row as $key => $val){
if($fields_count++ > 0) $somecontent .= ",";
$somecontent .= ucfirst($key);
}
}
$somecontent .= "\n";
// print field values
$db->query($sql_view);
while($row = $db->fetchAssoc()){
$fields_count = 0;
foreach($row as $key => $val){
if($fields_count++ > 0) $somecontent .= ",";
$somecontent .= str_replace(",", "", $val);
$somecontent .= str_replace("\n", "", $val);
}
$somecontent .= "\n";
}
// write some content to the opened file.
if (fwrite($fe, $somecontent) == FALSE) echo 'file_writing_error'." (export.csv)";
fclose($fe);
}
您可以直接从MySql进行 :
SELECT col1, col2, col3 INTO OUTFILE '/tmp/export.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
您的$somecontent .= str_replace("\\n", "", $val)
哪里? 我在您的代码中找不到。
您可以按照此处所示将数组指定为str_replace
第一个参数。 因此,它将用第二个参数替换数组中存在的每个字符串。
例如, $somecontent .= str_replace(array("\\n", "\\r"), "", $val);
您可以尝试这样的方法,并与ASCII字符一起玩
$somecontent .= str_replace(CHR(10), " ", $val);
$somecontent .= str_replace(CHR(13), " ", $val);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.