通过PHP生成管道定界文件

use*_*139 1 php csv delimited-text fputcsv

我的代码使用PHP的fputcsv函数生成了一个txt文件。

对于定界符,我正在尝试使用“ |”

$query = mysql_query("SELECT email, emailSource FROM session WHERE is_complete='1' ORDER by sessionid ASC")

$filename= 'here.txt';

$fp = fopen( $filename,'w');


fputcsv($fp, array('Email address', 'Email Source'));

if(mysql_numrows($query) > 0) {

    while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
            fputcsv($fp, array_values($row));
    }
}


fclose($fp);
$contents = file_get_contents($filename);
$contents = str_replace(",", "|", $contents);
file_put_contents($filename, $contents);
Run Code Online (Sandbox Code Playgroud)

我得到的结果全都放在一行上,而不是在单独的一行上显示值,并且标头周围也有“”。

"Email address"|"Email Source"|blah@blah.com|hi|
Run Code Online (Sandbox Code Playgroud)

代替这个:

Email address|Email Source|

blah@blah.com|hi|
Run Code Online (Sandbox Code Playgroud)

请有人能告诉我我在做什么错。是因为我正在使用fputcsv并保存到txt文件吗?

Lus*_*ian 5

摆脱str_replace / file_get_contents / file_put_contents块。代替fputcsv($fp, array('...')),使用fputcsv($fp, array('...'), '|');