私のコードでは、CSV エクスポートの mysql テーブルから各フィールドのすべてのコンマを保持する必要があります...
このために、すべてのフィールドに二重引用符を使用しました。このコードは、Linux システムで完全に実行されています。Windows で同じコードを実行している間、エクスポートされた CSV ファイルにも二重引用符が表示されます。これの問題は何ですか? なぜこのようなことが起こっているのか誰か教えてもらえますか?
function arrayToCSV($array, $header_row = true, $col_sep = ",", $row_sep = "\n", $qut = '"',$pgeTyp ="")
{
/*col_sep =htmlentities($col_sep);
$row_sep =htmlentities($row_sep);
$qut =htmlentities($qut);*/
if (!is_array($array) or !is_array($array[0])) return false;
//Header row.
if ($header_row)
{
foreach ($array[0] as $key => $val)
{
//Escaping quotes.
$key = str_replace($qut, "$qut$qut", $key);
$output .= $col_sep.$qut.$key.$qut;
}
$output = substr($output, 1)."\n".$row_sep;
}
//Data rows.
foreach ($array as $key => $val)
{
$tmp = '';
foreach ($val as $cell_key => $cell_val)
{
if($pgeTyp!="twitter" && $pagTyp!="jigsaw" && $pgeTyp=="")
$timeValue = @checkTimeStamp($cell_val);
else $timeValue = '';
if($timeValue=="True")
{
$cell_val = str_replace($qut, "$qut$qut", convert_time_zone($cell_val,'d-M-y h:i:s'));
}
else
{
$cell_val = str_replace($qut, "$qut$qut", $cell_val);
}
$tmp .= $col_sep.$qut.$cell_val.$qut;
}
$output .= substr($tmp, 1).$row_sep;
}
return $output;
}
関数呼び出しは、
$dbResult1[] =array('url_twitter_userid' => $selecttwittermainFtch['url_twitter_userid'],'url_tweet_name' => "$url_tweet_name",'url_twitter_uname' => "$url_twitter_uname",'url_twitter_url' => $selecttwittermainFtch['url_twitter_url'],'url_twitter_location' => "$url_twitter_location",'url_twitter_followers' => $selecttwittermainFtch['url_twitter_followers'],'url_twitter_following' => $selecttwittermainFtch['url_twitter_following'],'url_modified_on' => $modifiedon);
echo arrayToCSV($dbResult1, true, ", ", "\n", '','twitter');