如何在PHP的新行上打印每个..

时间:2012-04-03 20:44:54

标签: php html css twitter-bootstrap

目前,每个td ../ td只打印1行,这使得源代码非常难以阅读,我可以在新行上打印每个td ../ td元素以使其更具可读性。

感谢您的回复。我尝试了休息但它在屏幕上打印,需要把它放在这里,但在哪里?

$entries[$i] = '<td>'.$id[$i] .'</td>';
    $entries[$i] .= '<td>'.$username[$i].'</td>';
    $entries[$i] .= '<td>'.$first_name[$i].'</td>';

进一步修改:enter image description here

相关的HTML

<!-- Main hero unit for a primary marketing message or call to action --> 
      <div class="hero-unit"> 

        <div class="row">

<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>2</td>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>3</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>

   <table class="table table-bordered"> 
    <thead> 
    <tr> 
    <th>ID</th> 
    <th>Username</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Email Address</th>
    <th>Country</th>
    <th>Referrer</th>
    </tr>
    </thead>

       <tbody>
       <tr>

     <?php 

if (isset($content) && !empty($content) && is_array($content)) {//2
$i = 0;
$entries = array();


    while(array_key_exists($i, $content)) {//1

    $entries[$i] = "\n" .'<td>'.$id[$i] .'</td>';
    $entries[$i] .= "\n" .'<td>'.$username[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$first_name[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$last_name[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$email_address[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$country[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$where_about[$i].'</td>';
    //$entries[$i] .= '<td>'.$sample[$i].'</td>';

    echo $entries[$i];


     $i++;


}//1

}//2


?>

</tr> 
</tbody>
</table> 

7 个答案:

答案 0 :(得分:4)

concat "\n"到声明的前面

修改

$entries[$i] = "\n" . '<td>'.$id[$i] .'</td>';
$entries[$i] .= "\n" . '<td>'.$username[$i].'</td>';
$entries[$i] .= "\n" . '<td>'.$first_name[$i].'</td>';

答案 1 :(得分:2)

一个巧妙的技巧是使用换行符定义一个常量:

define('NL', "\r\n");

然后我们只是断言,不要担心使用单个我们的双qoutes用法:

$entries[$i] = '<td>'.$id[$i] .'</td>' . NL .
               '<td>'.$username[$i].'</td>' . NL .
               '<td>'.$first_name[$i].'</td>' . NL;

同样的技巧可以应用于标签:

define('TAB', "\t");

所以我们可以像这样做一些激进的事情,例如:

$entries[$i] = '<tr>' . NL . 
               TAB . '<td>' . $id[$i] . '</td>' . NL .
               TAB . '<td>' . $username[$i] . '</td>' . NL .
               TAB . '<td>' . $first_name[$i] . '</td>' . NL .
               '</tr>' . NL;

空间取决于个人对课程的偏好,但是当你保持一致时,它甚至可以保持你的代码可读!

在您的情况下,通过遍历所有字段的foreach循环遍历这些列(<td>),您可以使代码更加清晰。

$entries[$i] = '<tr>' . NL;

foreach(array('id', 'username', 'first_name') as $key) {
    $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL;
}

$entries[$i] = '</tr>' . NL;

现在告诉我这不酷!

好像你的代码只是缺乏在每个列中添加每个列的智能(tr),这里是你的相关PHP代码,修复和建议添加,它应该工作,但我无法测试它

<?php 

define('NL', "\r\n");
define('TAB', "\t");

if (isset($content) && !empty($content) && is_array($content)) {
    $i = 0;
    $entries = array();
    $fields = array('id', 'username', 'first_name', 'last_name', 'email_address', 'country', 'where_about');

    while(array_key_exists($i, $content)) {
        $entries[$i] = '<tr>' . NL;
        foreach($fields as $key) {
            $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL;
        }
        $entries[$i] = '</tr>' . NL;

        echo $entries[$i];
        $i++;
    }

}
?>

在我阅读此内容时,花一段时间浏览内容可能并不是一个好主意,请尝试使用foreach($content as $index => $value),然后使$index成为$i的等效内容,但你不会需要使用$content[$index],因为该值的精确值将出现在$value中。

答案 2 :(得分:1)

在回显/打印的td标签后使用'\ n'

答案 3 :(得分:1)

<? 
     foreach($array as $single) { 
          echo "<td></td> \n";
     }
?>

答案 4 :(得分:1)

您可以在print语句中添加换行符。

echo "My text\n";

您还可以添加标签以使其缩进整齐。

echo "\t\tMy text\n";

答案 5 :(得分:1)

我想补充一点:如果您使用Windows阅读代码,则应使用\r\n代替\n

答案 6 :(得分:1)

不确定你在问什么但是你想要摆脱:

$s .= '<td>' . $n . '</td>';

使用($ co表示关闭)

$co = '</td><td>';
$row = '<tr><td>' . $data . $co . $data2 . $co . $data3 . '</td></tr>';