在PHP和CodeIgniter中使用nl2br不打印新行

I am trying to solve a new line issue in CodeIgniter. My variable is set as below

$ba='hi
hello';

When I try to print it like this

echo nl2br($ba);

It's not converting to a new line. After a whole day of searching I found out that this is because my variable is with ' not "

I've also tried to use preg_replace but it's the same

preg_replace("/
||
/",'<br/>',$ba);

But I can't change this so how do I fix this issue?

Thanks for helping out.

" " is not the same as ' '! This is your basic problem. You are not trying to replace what you think you are

" " is converted in to a line feed or ASCII 13

' ' is the character \ then the character n

$ba='hi
hello';
$ba=str_replace('
','<br>',$ba);

echo $ba; // hi<br>hello

to use a regular expression:

as \ is an escape character you need to triple it:

$ba=preg_replace('#\\\\ |\\|\\ #','<br/>',$ba);