распечатать содержимое измененного файла

#php

#php

Вопрос:

У меня возникла проблема с выводом измененного файла на php, вот мой код:

 <?php
$content = file_get_contents("1.txt");
$items = explode("n",$content);
$line = ""; 
foreach ($items as $item){
$values = explode(",",$item);
foreach ($values as amp;$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,?
,
  

В чем проблема моего скрипта? Большое спасибо!

Комментарии:

1. 1 для Robik, в любом случае, я только что протестировал ваш оригинальный скрипт, и у меня он отлично работает. Может быть, вы хотите прочитать go4expert.com/forums/showthread.php?t=8021

Ответ №1:

Вы неправильно соединяете строки с 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 amp;$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,?