phpstring-interpolation

How to create a newline character?


In PHP I am trying to create a newline character:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

Afterwards I open the created file in Notepad and it writes the newline literally:

1 John Doe\r\n 1 John Doe\r\n 1 John Doe\r\n

I have tried many variations of the \r\n, but none work. Why isn't the newline turning into a newline?


Solution

  • Only double quoted strings interpret the escape sequences \r and \n as '0x0D' and '0x0A' respectively, so you want:

    "\r\n"
    

    Single quoted strings, on the other hand, only know the escape sequences \\ and \'.

    So unless you concatenate the single quoted string with a line break generated elsewhere (e. g., using double quoted string "\r\n" or using chr function chr(0x0D).chr(0x0A)), the only other way to have a line break within a single quoted string is to literally type it with your editor:

    $s = 'some text before the line break
    some text after';
    

    Make sure to check your editor for its line break settings if you require some specific character sequence (\r\n for example).