2014-04-17 60 views
0

我有一个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提前

回答

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); 

根据需要输出存储在$输出,你可以做你需要什么都

如果您能为我们提供样品csv数据,答案可以精确..

+0

你好,谢谢你的关注你的帮助。我已经试过你的脚本,它的工作原理,但解决我的问题。我如何告诉他进入文件并在分号后删除所有字符以及他在每一行上重复的过程。我无法使它与你的脚本一起工作。 – achillix

+0

是否通过为file_get_contents('filename')赋值$ csv来测试? 和file_put_contents('文件名')操作具有相同的文件名? –

+0

嗨,对不起,你是对的,现在它可以工作,但仍然有一点问题。我不想松散分号,只有后面的内容。如果你能告诉如何在最后保护分号? – achillix

相关问题