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.