2011-05-07 82 views
0

我有输出在PHP修改的文件,这里有一个问题的内容是我的代码:打印出了修改后的文件

<?php 
$content = file_get_contents("1.txt"); 
$items = explode("\n",$content); 
$line = ""; 
foreach ($items as $item){ 
$values = explode(",",$item); 
foreach ($values as &$value){ 
    $key = array_search($value,$values); 
    if ($key!=4){ 
     $line .= $value.","; 
    } 
    elseif ($value=="0"){ 
     $value="?"; 
     $line .= $value."\n"; 
    } 
    else $line .= $value."\n"; 
} 
} 
$file = fopen("1.txt","w"); 
fwrite($file,$line); 
fclose($file); 
?> 

在1.txt的原始内容

1,1,1,1,1 
2,2,2,2,0 

所需的输出是要

1,1,1,1,1 
2,2,2,2,? 

不过,我得到这个当我运行该脚本:

1,1,1,1,1,2,2,2,2,? 
, 

我的脚本有什么问题?非常感谢!

+0

+1 Robik,反正我刚才测试了原来的脚本,它为我工作得很好。也许你想阅读http://www.go4expert.com/forums/showthread.php?t=8021 – 2011-05-07 15:28:17

回答

2

您未正确连接\n。这是我的一点修改功能:

$content = '1,1,1,1,1 
2,2,2,2,0'; 

$lines = explode("\n", $content); 

$modLines = array(); 

foreach ($lines as $line) 
{ 
    $values = explode(',', $line); 

    foreach($values as &$value) 
    { 
     # Do here what ever you want to 
     if($value == '0') 
     $value = '?'; 
    } 

    $modLines[] = implode(',', $values); 

} 

$content = implode("\n", $modLines); 

echo $content; 

返回

1,1,1,1,1 
2,2,2,2,? 
+0

谢谢Robik,它确实有帮助! – Michael 2011-05-07 15:33:16