【问题标题】:Store a loop statement's result in a variable in PHP将循环语句的结果存储在 PHP 中的变量中
【发布时间】:2020-10-12 04:19:27
【问题描述】:

下面是我的代码,它会生成一个带有3 Columns6 Rows表格。我希望生成的HTML 语法将变量存储在PHP 中。有没有办法做到这一点?

echo "<table border =\"1\" style='border-collapse: collapse'>";
    
        for ($i=0; $i <= $col_count; $i++) { 
            echo "<tr>\n";
            for ($j=0; $j <= $row_count; $j++) { 
               $p = $data2[$i][$j];
               echo "<td>$p</td> \n";
                }
                echo "</tr>";
            }
            echo "</table>";
    ?>

【问题讨论】:

  • 在变量中初始化 html 表,就像你通常做的$table = '&lt;table ...',然后在循环中不断地连接它们,$table .= 'markup here',就像这样

标签: php html loops for-loop web


【解决方案1】:

尝试以下两种方式的代码都可以正常工作..!

<?php
//one way
    echo '<table border ="1" style="border-collapse: collapse">';
    for ($i=0; $i <= $col_count; $i++) 
    { 
        echo '<tr>\n';
        for ($j=0; $j <= $row_count; $j++) 
        { 
            $p = $data2[$i][$j];
            echo '<td>'.$p.'</td> \n';
        }
        echo '/tr>';
    }
    echo '</table>';
//second way(all html tag and string store in one php variable and after echo in last)
    $tbl = '<table border ="1" style="border-collapse: collapse">';
    for ($i=0; $i <= $col_count; $i++) 
    { 
        $tbl .= '<tr>\n';
        for ($j=0; $j <= $row_count; $j++) 
        { 
            $p = $data2[$i][$j];
            $tbl .= '<td>'.$p.'</td> \n';
        }
        $tbl .= '/tr>';
    }
    $tbl .= '</table>';
    echo $tbl;
?>

【讨论】:

    【解决方案2】:

    一个快速简单的解决方案是使用output buffering functions

    ob_start();
    
    // echo your stuff here exactly as you are right now
    
    $html = ob_get_clean();
    

    然后你可以echo $html(或&lt;?= $html ?&gt;,如果你还没有在PHP标签中)在任何地方/根据需要多次。

    这也应该比一遍又一遍地使用串联更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 2017-08-14
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      相关资源
      最近更新 更多