Php 从多个csv读取指定的行和行,并导出到一个csv文件
我每周从四个外部来源收到四个csv文件。csv文件具有相同的设计,但包含不同的数据。我想有具体的行和行从所有四个文件收集到一个csv文件 下面是如何设计所有四个csv文件的示例。我想从所有四个csv文件中读取日期、名称以及第5行和第6行,然后将所有这些内容添加到一个csv文件中,并设置为第二个示例 这怎么可能呢?在MS Excel中作为脚本,或者服务器端使用PHP? 我一直在寻找PHP的解决方案。但我不确定是否可以使用PHP 内容(第1行、第2行、第3行等)中使用的分隔符是逗号(,)。带有日期和名称的顶部仅使用冒号(:) 第二个示例Php 从多个csv读取指定的行和行,并导出到一个csv文件,php,vba,csv,Php,Vba,Csv,我每周从四个外部来源收到四个csv文件。csv文件具有相同的设计,但包含不同的数据。我想有具体的行和行从所有四个文件收集到一个csv文件 下面是如何设计所有四个csv文件的示例。我想从所有四个csv文件中读取日期、名称以及第5行和第6行,然后将所有这些内容添加到一个csv文件中,并设置为第二个示例 这怎么可能呢?在MS Excel中作为脚本,或者服务器端使用PHP? 我一直在寻找PHP的解决方案。但我不确定是否可以使用PHP 内容(第1行、第2行、第3行等)中使用的分隔符是逗号(,)。带有日期和
Row5 Row6 Date Name
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source1
ad4217 ad4218 24-01-2014 source2
ad4218 ad4218 24-01-2014 source2
ad4219 ad4218 24-01-2014 source2
ad4220 ad4218 24-01-2014 source2
ad4221 ad4218 24-01-2014 source2
ad4222 ad4218 24-01-2014 source2
ad4223 ad4218 24-01-2014 source2
ad4224 ad4218 24-01-2014 source2
ad4225 ad4218 24-01-2014 source2
ad4226 ad4218 24-01-2014 source2
ad4227 ad4218 24-01-2014 source2
ad4228 ad4218 24-01-2014 source2
ad4229 ad4218 24-01-2014 source2
ad4230 ad4218 24-01-2014 source2
ad4231 ad4218 24-01-2014 source2
ad4232 ad4218 24-01-2014 source2
ad4217 ad4218 24-01-2014 source3
ad4218 ad4219 24-01-2014 source3
ad4219 ad4220 24-01-2014 source3
ad4220 ad4221 24-01-2014 source3
ad4221 ad4222 24-01-2014 source3
ad4222 ad4223 24-01-2014 source3
ad4223 ad4224 24-01-2014 source3
ad4224 ad4225 24-01-2014 source3
ad4225 ad4226 24-01-2014 source3
ad4226 ad4227 24-01-2014 source3
ad4227 ad4228 24-01-2014 source3
ad4228 ad4229 24-01-2014 source3
ad4229 ad4230 24-01-2014 source3
ad4230 ad4231 24-01-2014 source3
ad4231 ad4232 24-01-2014 source3
ad4232 ad4233 24-01-2014 source3
ad4217 ad4218 24-01-2014 source4
ad4218 ad4219 24-01-2014 source4
ad4219 ad4220 24-01-2014 source4
ad4220 ad4221 24-01-2014 source4
ad4221 ad4222 24-01-2014 source4
ad4222 ad4223 24-01-2014 source4
ad4223 ad4224 24-01-2014 source4
ad4224 ad4225 24-01-2014 source4
ad4225 ad4226 24-01-2014 source4
ad4226 ad4227 24-01-2014 source4
ad4227 ad4228 24-01-2014 source4
ad4228 ad4229 24-01-2014 source4
ad4229 ad4230 24-01-2014 source4
ad4230 ad4231 24-01-2014 source4
ad4231 ad4232 24-01-2014 source4
ad4232 ad4233 24-01-2014 source4
我希望Stackoverflow的人知道如何做到这一点
溴
克里斯蒂安
结果就像你想要的:
row5 row6 Date Source
ad4215;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4215;ad4218;24/01/2014;source1
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad5555;test6i;24/01/2014;source3
ad5555;test6i;24/01/2014;source3
etc...
csv文件中的分隔符是逗号还是制表符?在您的示例中,它看起来像一个选项卡,但您可以从Excel复制并粘贴。很抱歉,缺少有关csv文件的详细信息。文件中正在使用分隔符:
code
日期:2014年1月24日名称:test.csv第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行、第9行ad4213、ad4214、AD42154216、ad4217、d4218、a219、ad4220、ad4221code
这简直太棒了。我认为这样做的原因是前五行是文本或空格,标题(第1行、第2行等)从第六行开始。很抱歉,缺少有关csv文件的详细信息。文件中正在使用分隔符:文件顶部“日期:24-01-2014名称:test.csv”内容“第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行、第9行ad4213、ad4214、AD42154216、ad4217、d4218、a219、ad4220、ad4221”经过一些小的调整后,我使其能够读取这两个分隔符。非常感谢你的工作!克里斯蒂安酒店
$foo = array( "source1.csv", "source2.csv","source3.csv","source4.csv");
$cont=0;
foreach ($foo as $value) {
$fh = fopen($value, 'r');
if(!$fh) die('File no good!');
$i=0;$j=0;
while (!feof($fh )){
$campo = fgetcsv($fh,4096,";");
if($i < 2)
$dataandsource[$cont][$i]=$campo[1];
elseif($campo[5] != '' && $campo[6]!= ''){
$rowfive[$cont][$j]=$campo[4];
$rowsix[$cont][$j]=$campo[5];
$j++;
}
$i++;
}
unset($rowfive[$cont][0]); //first row is 'row5'
unset($rowsix[$cont][0]); //first row is 'row6'
$cont++;
}
for($x=0;$x< count($foo);$x++)
{
for($y=0;$y <= count($rowfive[$x]);$y++)
{
if($x==0 && $y ==0)
echo "row5 row6 Date Source<br>";
else{
if($rowfive[$x][$y] != '' )
echo $rowfive[$x][$y].";".$rowsix[$x][$y].";".$dataandsource[$x][0].";".$dataandsource[$x][1]."<br>";
}
}
}
Date;24/01/2014;;;;;;;
Name;source1;;;;;;;
Row1; Row2; Row3;Row4; Row5;Row6;Row7;Row8;Row9
ad4213;ad4214;ad4215;ad4216;ad4215;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4217;ad4218;ad4219;ad4220;ad4221
ad4213;ad4214;ad4215;ad4216;ad4215;ad4218;test6;ad4220;ad4221
row5 row6 Date Source
ad4215;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4217;ad4218;24/01/2014;source1
ad4215;ad4218;24/01/2014;source1
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad4213;ad4221;24/01/2014;source2
ad5555;test6i;24/01/2014;source3
ad5555;test6i;24/01/2014;source3
etc...