在我的视图中显示奇怪的换行符

use*_*629 0 html php codeigniter

我使用codeigniter生成一个html表,用于插入模板视图.在如何在生成的HTML代码和一些实验中插入换行符的帮助下,我已经能够将我的代码更改为:

$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both">\n <tbody>\n';

    foreach ($array as $key => $value) {

    $string=$string."\t\n<tr><td>$key</td>";  
    $element='<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td></tr>\n';
    $string=$string.$element;
    }
$string=$string.'</tbody>\n</table>';
Run Code Online (Sandbox Code Playgroud)

然后我将这个生成的html字符串注入我的CI视图,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
   <base href="<?=base_url();?>">
    <meta charset="utf-8">
    <meta name="author" content="Vitaliy Potapov">
    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
   <link href="css/bootstrap.css" rel="stylesheet">
   <link href="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.5/bootstrap-editable/css/bootstrap-editable.css" rel="stylesheet"/>


</head> 
<body> 


  <?=$html_string;?>  


  <script src='js/jquery.js'></script>
  <script src="js/bootstrap.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.5/bootstrap-editable/js/bootstrap-editable.min.js"></script>

<script language="javascript" type="text/javascript">

  $(document).ready(function() {
$('#myDataTable').editable();
$.fn.editable.defaults.mode = 'inline';
});

</script>

 </body> 
</html> 
Run Code Online (Sandbox Code Playgroud)

我得到了预期的表,但是由于某种原因,当我查看生成的HTML时,我在表之前看到了一堆生成的新行字符.

     \n \n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n  
\n\n
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?我该如何解决这个问题?

Fun*_*ner 7

`编辑

我可能在与Orangepill同时给出答案,然后编辑了我的答案,给予Orangepill信用.


Original answer:

可能是因为 $string='';

你需要逃避你的"内部(双引号),并使用:
$string="content with escaped double quotes etc";

在这种情况下,$string所有其他变量必须包含在双引号内,以作为字符串处理.

根据Orangepill的回答,使用连接也是必须的.


Ora*_*ill 5

使用单引号时不会插入转义字符.要解决此问题,请从字符串中删除\n或将代码更改为以下内容:

<?php
$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both">'."\n".' <tbody>'."\n";

foreach ($array as $key => $value) {

    $string=$string."\t\n<tr><td>$key</td>";  
    $element='<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td></tr>'."\n";
    $string=$string.$element;
}
$string=$string."</tbody>\n</table>";
Run Code Online (Sandbox Code Playgroud)