Вопрос по php, javascript – Как преобразовать разрывы строк в \ n

2

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

Возвращаемая строка должна быть отформатирована в 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>
Другая проблема заключается в том, что вы неправильно вставляете строку в JavaScript. Так должно бытьvar jdb = "<?php echo $db; ?>"; Felix Kling

Ваш Ответ

7   ответов
-3

который преобразует все новые строки в HTML & lt; br / & gt ;. http://php.net/manual/en/function.nl2br.php

0

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

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

$db = str_replace("\r\n", "\n", $db);
Error: User Rate Limit Exceeded dev.bashar
Error: User Rate Limit Exceeded
7
$db = preg_replace("/\n/m", '\n', $db);

Error: User Rate Limit ExceededmError: User Rate Limit ExceededIf there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.
Error: User Rate Limit Exceeded/mError: User Rate Limit Exceeded^Error: User Rate Limit Exceeded$Error: User Rate Limit Exceeded
3

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

$db = strtr( $db, array(  "\n" => "\\n",  "\r" => "\\r"  ));
Error: User Rate Limit Exceeded
2

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

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

<?php

   $db = "this is a line
          this is a new line
          ";

?>
<script type="text/javascript">
  var jdb = <?php echo json_encode($db) ?>;
</script>
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded<textarea>Error: User Rate Limit ExceededallError: User Rate Limit Exceeded\r\nError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded dev.bashar
0

поэтому, если вы хотите вставить его в 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, просто удалите две косые черты, чтобы они 's & quot; \ n & quot; в php и & quot; \ n & quot; в JS.

Похожие вопросы