Php 将字符串添加到每行的末尾,但不添加到第一行

Php 将字符串添加到每行的末尾,但不添加到第一行,php,Php,我正在尝试在每条线的末尾添加一个字符串。到目前为止,这是可行的。但是,我不希望字符串被添加到第一行的末尾。我该怎么做 到目前为止,我得到了: <?php $EOLString="string \n"; $fileName = "file.txt"; $baseFile = fopen($fileName, "r"); $newFile=""; while(!feof($baseFile)) { $newFile.= str_replace(PHP_EOL, $EOLString,

我正在尝试在每条线的末尾添加一个字符串。到目前为止,这是可行的。但是,我不希望字符串被添加到第一行的末尾。我该怎么做

到目前为止,我得到了:

<?php

$EOLString="string \n";
$fileName = "file.txt";
$baseFile = fopen($fileName, "r");
$newFile="";
while(!feof($baseFile)) {
    $newFile.= str_replace(PHP_EOL, $EOLString, fgets($baseFile));
}
fclose($baseFile);
file_put_contents("newfile.txt", $newFile);

$bingName = "newfile.txt";
$bingFile = fopen($bingName, "a+");
fwrite($bingFile,$EOLString);
fclose($bingFile);

?>

我还尝试通过这样做来循环它:

<?php

$EOLString="string \n";
$fileName = "file.txt";
$baseFile = fopen($fileName, "r");
$newFile="";
$x = 0;
while(!feof($baseFile)) {
    if ($x > 0) {
        $newFile.= str_replace(PHP_EOL, $EOLString, fgets($baseFile));
    }
    $x++;
}
fclose($baseFile);
file_put_contents("newfile.txt", $newFile);

$bingName = "newfile.txt";
$bingFile = fopen($bingName, "a+");
fwrite($bingFile,$EOLString);
fclose($bingFile);

?>

因此,最终结果如下所示:

第一串 第二串 第三资本

等等

我希望你能帮助我


本:)

只需在循环中添加一个计数器:

$counter = 0;
while(!feof($baseFile)) {
    $line = fgets($baseFile)
    if($counter++ > 0){
        $newFile.= str_replace(PHP_EOL, $EOLString, $line);
    }else{
        $newFile.= $line . "\n";
    }
}
此外,您似乎正在写入新文件,只是为了重新打开它并附加更多数据。无需这样做,只需在第一次编写内容之前附加内容即可:

fclose($baseFile);
file_put_contents("newfile.txt", $newFile . $EOLString);

//$bingName = "newfile.txt";
//$bingFile = fopen($bingName, "a+");
//fwrite($bingFile,$EOLString);
//fclose($bingFile);
或者,您可以读入整个文件,分成几行,然后重新连接:

$EOLString="string \n";
$lines = explode("\n", file_get_contents("file.txt"));
$first = array_shift($lines);
file_put_contents("newfile.txt", $first . "\n" . implode($EOLString, $lines) . $EOLString);
//done!
用旗子

$first = TRUE;//set true first time
while (!feof($baseFile)) {
    $line = fgets($baseFile);
    if (!$first) {// only enter for false
        $newFile.= str_replace(PHP_EOL, $EOLString, $line);
    }
    $first = FALSE;// set false except first
}