PHP新行\ n和\ r \ n无效

时间:2012-04-26 10:46:59

标签: php line newline break

  $rows = mysql_num_rows($result) ;
  for ($j=0 ; $j < 3 ; $j++) {
  for ($i=0 ; $i < 3 ; $i++) {
    $row = mysql_fetch_array($result) ;
    echo '<a href="image2.php?id='.$row['ID'].'">'."<img src='".$row['Image']."' />".'</a>' ;

  }
   echo "\r\n";
  }

代码显示三组三个图像。我的理解是\ r \ n和\ n(双引号)应该创建一个新行。然而,它只是在图像之间插入一个空格。是callign \ r \ n错误的方式,还是使用错误的代码来获取新行(换行符)

示例(#=一张图片):

没有echo \ r \ n:######### 使用echo \ r \ n:### ### ###

4 个答案:

答案 0 :(得分:10)

空格is not displayed verbatim当它是HTML文本的一部分时。 \r\n不是通用常量;它们只是字符,它取决于任何程序消耗它们来决定如何处理它们。

您应该使用<br>代替。

答案 1 :(得分:8)

您的echo "\r\n";不在循环中。将它移到循环内。

此外,如果您希望在浏览器中显示换行符,则还应打印<br />

  $rows = mysql_num_rows($result) ;
  for ($j=0 ; $j < 3 ; $j++) {
  for ($i=0 ; $i < 3 ; $i++) {
    $row = mysql_fetch_array($result) ;
    echo '<a href="image2.php?id='.$row['ID'].'">'."<img src='".$row['Image']."' />".'</a>' ;
  }
    echo "<br />\n";    
  }

答案 2 :(得分:3)

你需要:

echo '<br />';

而不是:

echo "\r\n";

答案 3 :(得分:0)

你也可以考虑设置一个合适的header 示例:


$data = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
];
header("Content-Type: text/plain");
foreach($data as $row){
    echo implode(',', $row) . "\r\n";
}