【问题标题】:PHP Code inside PHP VariablePHP 变量内的 PHP 代码
【发布时间】:2014-09-11 09:16:18
【问题描述】:

我有一个关于在 PHP 变量中集成 PHP 代码的问题。 我正在做 PHP 到 PDF 的报告,我正在使用 PHP 到 PDF

我想从 ORACLE DB 查询表并将其打印为 PDF,现在我遇到了转义字符和其他内容的问题

我的代码是这样的,

$compProfileSql = "SELECT * FROM DRAWING WHERE PROJECT_NAME = :PROJNAME"
$compProfileParse = oci_parse($conn, $compProfileSql);
                        oci_bind_by_name($compProfileParse, ":PROJNAME", $_SESSION['cd-dropdown']);
                        oci_execute($compProfileParse);

$content = "
<table class=\"table table-bordered\">
                <thead>
                    <tr>
                        <th>PROJECT NAME</th>
                        <th>COMPONENT</th>
                        <th>DRAWING</th>                           
                    </tr>
                </thead>
                <tbody>               
                    while (($row = oci_fetch_array($compProfileParse, OCI_BOTH)) != false){
                        <tr>
                            <td>$row[COMP_TYPE]</td>
                            <td>$row[JML_DWG]</td>
                            <td>$row[JML_MARKING]</td>                                                                      
                        </tr>
                    }
                </tbody>
            </table>
";

我无法在生成的 PDF 中看到表格。我在转义字符上犯了错误吗? 感谢您的帮助

【问题讨论】:

    标签: php oracle


    【解决方案1】:

    你需要分开它:

    $content = "
    <table class=\"table table-bordered\">
                <thead>
                    <tr>
                        <th>PROJECT NAME</th>
                        <th>COMPONENT</th>
                        <th>DRAWING</th>                           
                    </tr>
                </thead>
                <tbody>";               
                    while (($row = oci_fetch_array($compProfileParse, OCI_BOTH)) != false){
                        $content .= "<tr>
                            <td>" . $row['COMP_TYPE'] . "</td>
                            <td>" . $row['JML_DWG'] . "</td>
                            <td>" . $row['JML_MARKING'] . "</td>                                                                      
                        </tr>";
                    }
               $content .= "</tbody>
            </table>";
    

    【讨论】:

      【解决方案2】:

      你也可以这样写,

      $content = "  
               <table class=\"table table-bordered\">
                  <thead>
                      <tr>
                          <th>PROJECT NAME</th>
                          <th>COMPONENT</th>
                          <th>DRAWING</th>                           
                      </tr>
                  </thead>
                  <tbody>";               
                      while (($row = oci_fetch_array($compProfileParse, OCI_BOTH)) != false){
                          $content .= "<tr>
                              <td>$row[COMP_TYPE]</td>
                              <td>$row[JML_DWG]</td>
                              <td>$row[JML_MARKING]</td>                                                                      
                          </tr>";
                      }
                  $content .= "</tbody>
              </table>  
      ";
      

      【讨论】:

        【解决方案3】:

        您可以使用单引号代替双引号,那么您将不再需要使用转义字符。

            $content = '
            <table class="table table-bordered">
                            <thead>
                                <tr>
                                    <th>PROJECT NAME</th>
                                    <th>COMPONENT</th>
                                    <th>DRAWING</th>                           
                                </tr>
                            </thead>
                            <tbody>';    
        
                            while (($row = oci_fetch_array($compProfileParse, OCI_BOTH)) != false){ 
                            $content.=  '<tr>
                                        <td>'.$row["COMP_TYPE"].'</td>
                                        <td>'.$row["JML_DWG"].'</td>
                                        <td>'.$row["JML_MARKING"].'</td>               
                                    </tr>';
                                }
                            $content.= '</tbody>
                            </table>';
        

        【讨论】:

          【解决方案4】:

          将其添加为评论,但您将看不到太多内容,所以...

          我首先可以说的是,你不区分 HTML 和 PHP,试试这样:

          $content = "
          <table class=\"table table-bordered\">
                      <thead>
                          <tr>
                              <th>PROJECT NAME</th>
                              <th>COMPONENT</th>
                              <th>DRAWING</th>                           
                          </tr>
                      </thead>
                      <tbody>  <?php             
                          while (($row = oci_fetch_array($compProfileParse, OCI_BOTH)) != false){ ?>
                              <tr>
                                  <td><?php echo $row[COMP_TYPE]; ?></td>
                                  <td><?php echo $row[JML_DWG]; ?></td>
                                  <td><?php echo $row[JML_MARKING]; ?></td>                                                                      
                              </tr>
                          <?php } ?>
                      </tbody>
                  </table>";
          

          即使我不确定您用于打印到 PHP 的方法,如果这将被视为一个简单的字符串,而不是在任何地方转换为 HTML,您只会看到代码而不会看到其他任何内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-08-27
            • 1970-01-01
            • 1970-01-01
            • 2014-06-03
            • 2010-12-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多