У меня есть строка возврата из 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