My PHP_EOL is \"\\r\\n\", however, when I do print_r
on an array each new line has a \"\\n\" - not a \"\\r\\n\" - placed after it.
Any idea if it\'s pos
Like pointed out elsewhere on this page, the newlines are hardcoded in the PHP source, so you have to replace them manually.
You could use your own version of print_r
like this:
namespace My;
function print_r($expression, $return = false)
{
$out = \print_r($expression, true);
$out = \preg_replace("#(?
Whenever you want to use it, you just import it with
// aliasing a function (PHP 5.6+)
use My\print_r as print_r;
print_r("A string with \r\n is not replaced");
print_r("A string with \n is replaced");
This will then use PHP_EOL
for newlines. Note that it will only substitute newlines, e.g. \n
, but not any \r\n
you might have in the $expression
. This is to prevent any \r\n
to become \r\r\n
.
The benefit of doing it this way is that it will work as a drop-in replacement of the native function. So any code that already uses the native print_r
can be replaced simply by adding the use statement.