在每行的文件中查找并删除所有字符串之后的所有内容

时间:2014-04-17 09:36:47

标签: php csv

我有一个csv文件,我想删除分号(;)后面的所有字符。在每一行中只有一个分号。这是我的代码,但它不起作用:

$variable = substr($variable, 0, strpos($variable, ";"));
$file = "D:/test/php/liste_compte.csv";
$content = file_get_contents($file);
$content = str_replace($variable, $content);
file_put_contents($file, $content);

任何想法

提前THX

1 个答案:

答案 0 :(得分:0)

<?php
$csv=<<<HERE
a,b,c,d
e,f,g,h
i,j,k;,l
m,n,o,p
HERE;

$output = '';

$lines = explode(PHP_EOL, $csv);

for($i = 0; $i<count($lines); $i++) {
 $line = $lines[$i];

 // check for ;
 if(strpos($line, ';') !== false) {
  // if found then remove everything after that 
  $line = substr($line, 0, strpos($line, ';'));
 }

 $output.=$line."\r\n";

} // end of for loop

file_put_contents("file.csv", $output);

由于所需的输出存储在$ output中,您可以随心所欲地执行

如果你能为我们提供样本csv数据答案可以准确..