Php 为什么每个'<~~~&燃气轮机';不是用颜色名称替换吗?为什么只有最后一个有效?

Php 为什么每个'<~~~&燃气轮机';不是用颜色名称替换吗?为什么只有最后一个有效?,php,Php,文件内容: 嘿,你好吗 我很好,你呢 我也很好。多谢各位 产出即将到来: 嘿,你好吗 我很好,你呢 我也很好。多谢各位 黄色的 每行末尾都有一个尾随的换行符。使用trim($line)清除它: <?php $color='red'; $lines=file("new.txt"); foreach ($lines as $line) { if($line=='<~~~>'){ if($color=='red')

文件内容:

嘿,你好吗

我很好,你呢

我也很好。多谢各位

产出即将到来:

嘿,你好吗

我很好,你呢

我也很好。多谢各位

黄色的


每行末尾都有一个尾随的换行符。使用
trim($line)
清除它:

<?php
$color='red';
 $lines=file("new.txt");
 foreach ($lines as $line) {
      if($line=='<~~~>'){
                  if($color=='red')
                     echo $color='yellow';
                  elseif($color=='yellow')
                     echo $color='red';
                    }
  else{
  echo $line."<br>";
    }
 }
?>

每行末尾都有一个尾随的换行符。使用
trim($line)
清除它:

<?php
$color='red';
 $lines=file("new.txt");
 foreach ($lines as $line) {
      if($line=='<~~~>'){
                  if($color=='red')
                     echo $color='yellow';
                  elseif($color=='yellow')
                     echo $color='red';
                    }
  else{
  echo $line."<br>";
    }
 }
?>
您的问题是

<?php
$color = 'red';
$lines = file("new.txt");
foreach ($lines as $line) {
    if (trim($line) == '<~~~>') {
        if ($color == 'red')
            echo $color = 'yellow';
        else if ($color == 'yellow')
            echo $color = 'red';
        echo "<br />"; // Added to keep the original format
    } else {
        echo $line . "<br />";
    }
}
照办

echo $color='yellow';
相反。回声“红色”也是如此

表达式“$color='yellow'”生成一个返回值'void',然后由“echo”看到。所以实际上你在做一个“回声空洞”的等价物。

你的问题是

<?php
$color = 'red';
$lines = file("new.txt");
foreach ($lines as $line) {
    if (trim($line) == '<~~~>') {
        if ($color == 'red')
            echo $color = 'yellow';
        else if ($color == 'yellow')
            echo $color = 'red';
        echo "<br />"; // Added to keep the original format
    } else {
        echo $line . "<br />";
    }
}
照办

echo $color='yellow';
相反。回声“红色”也是如此

表达式“$color='yellow'”生成一个返回值'void',然后由“echo”看到。实际上,你在做一个“echo void;”等价物。

这在以下章节中有解释:

返回值

返回数组中的文件。数组的每个元素都对应于文件中的一行,换行符仍然附着

这意味着,除了最后一行,如果它没有以新行字符结尾,那么文件中的任何一行都不能等于string
“”

解决方案也在同一段中提供,如下一段:

注意:

结果数组中的每一行都将包括行尾,除非使用了
FILE\u IGNORE\u NEW\u line
,因此如果不希望出现行尾,则仍然需要使用

下文对此进行了解释:

返回值

返回数组中的文件。数组的每个元素都对应于文件中的一行,换行符仍然附着

这意味着,除了最后一行,如果它没有以新行字符结尾,那么文件中的任何一行都不能等于string
“”

解决方案也在同一段中提供,如下一段:

注意:

结果数组中的每一行都将包括行尾,除非使用了
FILE\u IGNORE\u NEW\u line
,因此如果不希望出现行尾,则仍然需要使用


您没有替换代码中的任何内容。您没有替换代码中的任何内容。不正确。表达式
$color='yellow'
给出了返回值'yellow'。语句
echo$color='yellow'
更改
$color
的值并同时打印新值。不正确。表达式
$color='yellow'
给出了返回值'yellow'。语句
echo$color='yellow'
更改
$color
的值,并同时打印新值。