我有一个.csv文件,可以与Google Maps API一起使用,以成功创建地图数据。
我想要做的是合并2个(或更多).csv文件,并以相同的方式在Google地图上显示TOTAL数据。它们都是相同的格式。
我有2个csv文件的路径,并且如果需要的话,可以是同一目录中的空白.csv文件,可以将这些文件合并到...
不幸的是,所有.csv文件都有一个初始的“标题行”,合并时会忽略掉它。
如果有人能指出我正确的方向,我将非常高兴。谢谢
编辑:我已经尝试过:
$data1 = file_get_contents('google_map_data.csv');
$data2 = file_get_contents('google_map_data2.csv');
$TOTALdata = "google_map_dataALL.csv";
function joinFiles(array $files, $result)
{
if(!is_array($files)) {
throw new Exception('`$files` must be an array');
}
$wH = fopen($result, "w+");
foreach($files as $file)
{
$fh = fopen($file, "r");
while(!feof($fh))
{
fwrite($wH, fgets($fh));
}
fclose($fh);
unset($fh);
fwrite($wH, "\n"); //usually last line doesn't have a newline
}
fclose($wH);
unset($wH);
joinFiles(array($data1, $data2), $TOTALdata);
答案 0 :(得分:0)
我假设两个文件都很小,所以一次加载它们就可以了。
代码将加载两个文件,然后从第二个文件中删除第一行。它还会从第一个文件中删除任何行尾,但会添加自己的行以确保始终有新行...
$data1 = file_get_contents('google_map_data.csv');
$data2 = file_get_contents('google_map_data2.csv');
$TOTALdata = "google_map_dataALL.csv";
$data2 = ltrim(strstr($data2, PHP_EOL));
file_put_contents($TOTALdata, rtrim($data1).PHP_EOL.$data2);