Как преобразовать разрывы строк в \ n

У меня есть строка возврата из db.

Строка возврата должна быть отформатирована в javascript.

<?php $db = "this is a line this is a new line"; ?> 

Как бы я преобразовал выше:

 <?php $db = "this is a line \n this is a new line"; ?> 

Javascript:

 <script> var jdb = <?php echo $db; ?> </script> 

Попробуйте это (обновлено 2014-11-08):

 <?php $db = "this is a line this is a new line "; ?> <script type="text/javascript"> var jdb = <?php echo json_encode($db) ?>; </script> 
 $db = preg_replace("/\n/m", '\n', $db); 

должен сделать трюк

Чтобы правильно сохранить разрывы строк \r и \n , вы можете легко использовать strtr .

 $db = strtr( $db, array( "\n" => "\\n", "\r" => "\\r" )); 

я не понимаю, но вы можете (избегать разрыва строки, добавляя обратную косую черту)

 $db = str_replace("\n","\\n",$db); 

Я не уверен, правильно ли я понимаю, потому что \ n – это разрыв строки !?

Но вам может понадобиться:

 $db = str_replace("\r\n", "\n", $db); 
 $db = str_replace("\r\n", "\\n", $db); 

Вы хотите вывести это на javascript … hmm, поэтому, если вы хотите вставить его в html, вы, вероятно, захотите что-то вроде этого (тест прошел):

 <div id="test"></div> <script type="text/javascript"> <?php $string = "123 456"; // or $string = "123\n456"; $string = str_replace(array("\r\n","\n"),"\\\\n",$string); echo "document.getElementById('test').innerHTML = '".htmlentities($string)."';"; ?> </script> 

с выходом 123\n 456 в div через js

Если вы просто хотите, чтобы это было в js, просто удалите две из косых черт, так что это «\ n» в php и «\ n» в js.

Вы должны посмотреть на nl2br (), который преобразует все новые строки в HTML <br />. http://php.net/manual/en/function.nl2br.php