Dan1676
Dan1676

Reputation: 1725

PHP new line \n and \r\n not working

  $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";
  }

The code displays three groups of three images. My understanding was that \r\n and \n (double quotes) should create a new line. However it is just inserting a space between the images. Is the way am callign \r\n wrong or is it am using the wrong code to isneert a new line (line break)

Examples (# = one image):

Without echo \r\n: ######### With echo \r\n: ### ### ###

Upvotes: 12

Views: 41690

Answers (4)

Emeka Mbah
Emeka Mbah

Reputation: 17520

You can also consider setting a proper header Exmaple:


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

Upvotes: 1

Nadh
Nadh

Reputation: 7243

Your echo "\r\n"; is outside the loop. Move it inside the loop.

Also, if you want the line breaks to be visible in the browser, you should print a <br /> too.

  $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";    
  }

Upvotes: 12

codaddict
codaddict

Reputation: 454960

You need:

echo '<br />';

instead of:

echo "\r\n";

Upvotes: 5

Jon
Jon

Reputation: 437336

Whitespace is not displayed verbatim when it's part of HTML text. \r and \n are not universal constants; they are just characters, and it's up to whatever program consumes them to decide what to do with them.

You should use <br> instead.

Upvotes: 13

Related Questions