用双引号或单引号打印 HTML 和 PHP 代码

Posted

技术标签:

【中文标题】用双引号或单引号打印 HTML 和 PHP 代码【英文标题】:Print the HTML and PHP Code in Double or single quotation marks 【发布时间】:2017-06-22 11:19:32 【问题描述】:

我正在显示从 php 中的数据库获取数据的 html 表,并将其导出到 PDF 页面中...一切都很好,但是当 PDF 文件下载时,除了来自 mysql 的值之外,它会在表中显示 php 代码,并且问题在于引号,那么如何用引号编写代码,以便在表格中准确显示除 php 代码之外的值?

点击时

<a href="file.php" class="export-pdf" data-filename="PDFFILE"><button type="button" class="btn btn-success">PDF FORMAT</button></a>

以 PDF 代码“FILE.PHP”导出表格

<?php require_once 'components/app.php'; ?>
<?php
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML("

<table id='fixed_table' class='table table-bordered table-hover'>
                <thead>
                <tr>
        <th>District</th>
        <th>Union Council</th>
        <th>Village</th>
        <th>Recreational</th>
        <th>Awareness Raising</th>
        <th>Training</th>
        <th>Social Mobilization</th>
        <th>Total Activities</th>

                </tr>
                </thead>
                  <tbody>
      <tr>
      <td style='color:red;'><b><?php echo getTotalDistrictUnique();?></b></td>
      <td style='color:red;'><b><?php echo getTotalUnionCouncilUnique();?></b></td>
      <td style='color:red;'><b><?php echo getTotalVillages(); ?></b></td>
      <td style='color:red;'><b><?php echo getTotalRecreational();?></b></td>
      <td style='color:red;'><b><?php echo getTotalAwareness();?></b></td>
      <td style='color:red;'><b><?php echo getTotalTraining();?></b></td>
      <td style='color:red;'><b><?php echo getTotalSocial();?></b></td>
      <td style='color:red;'><b><?php echo getTotalRecreational() + getTotalAwareness() + getTotalTraining() + getTotalSocial(); ?></td>

      </tr>

      <?php
include('connection.php');
$query ='select * from general';
$run =mysqli_query($con,$query);
while ($row=mysqli_fetch_array($run)) 
    $id=$row[0];
    $createdate=$row[1];
    $createday=$row[2];
    $partnername=$row[3];
    $district=$row[4];
    $unioncouncil=$row[5];
    $village=$row[6];
    $vannumber=$row[7];
    $facilitator=$row[8];
    $beneficiarytype=$row[9];
    $rmultimedia=$row[10];
    $rgame=$row[11];
    $rsprort=$row[12];
    $rart=$row[13];
    $rgroupreading=$row[14];
    $rother=$row[15];
    $alandminer=$row[16];
    $apersonalsafety=$row[17];
    $abirthregister=$row[18];
    $aother=$row[19];
    $tstickstone=$row[20];
    $tohthers=$row[21];
    $sbirthregister=$row[22];
    $sother=$row[23];
    $formnumber=$row[24];
    $submitdatatime=$row[25];
?>

      <tr>
      <td><?php echo $district?></td>
      <td><?php echo $unioncouncil?></td>
      <td><?php echo $village?></td>
      <td>
      <?php 
      if($rmultimedia=='true')
       
        $rmultimedia_value = 1;
        
        else
            $rmultimedia_value = 0;
        

        if($rgame=='true')
       
        $rgame_value = 1;
        
        else
            $rgame_value = 0;
        

        if($rsprort=='true')
       
        $rsprort_value = 1;
        
        else
            $rsprort_value = 0;
        

        if($rart=='true')
       
        $rart_value = 1;
        
        else
            $rart_value = 0;
        

        if($rgroupreading=='true')
       
        $rgroupreading_value = 1;
        
        else
            $rgroupreading_value = 0;
        

        if($rother=='true')
       
        $rother_value = 1;
        
        else
            $rother_value = 0;
        

      $recreational_sum = $rmultimedia_value + $rgame_value + $rsprort_value + $rart_value + $rgroupreading_value + $rother_value;

      echo $recreational_sum;?></td>

      <td>
          <?php 
      if($alandminer=='true')
       
        $alandminer_value = 1;
        
        else
            $alandminer_value = 0;
        

        if($apersonalsafety=='true')
       
        $apersonalsafety_value = 1;
        
        else
            $apersonalsafety_value = 0;
        

        if($abirthregister=='true')
       
        $abirthregister_value = 1;
        
        else
            $abirthregister_value = 0;
        

        if($aother=='true')
       
        $aother_value = 1;
        
        else
            $aother_value = 0;
        

      $awareness_raising_sum = $alandminer_value + $apersonalsafety_value + $abirthregister_value + $aother_value;

      echo $awareness_raising_sum;?>
      </td>

      <td>
              <?php 
      if($tstickstone=='true')
       
        $tstickstone_value = 1;
        
        else
            $tstickstone_value = 0;
        

        if($tohthers=='true')
       
        $tohthers_value = 1;
        
        else
            $tohthers_value = 0;
        

      $training_sum = $tstickstone_value + $tohthers_value;

      echo $training_sum;?>
      </td>

      <td>
        <?php 
      if($sbirthregister=='true')
       
        $sbirthregister_value = 1;
        
        else
            $sbirthregister_value = 0;
        

        if($sother=='true')
       
        $sother_value = 1;
        
        else
            $sother_value = 0;
        

      $social_mobilization_sum = $sbirthregister_value + $sother_value;

      echo $social_mobilization_sum;?>
      </td>

      <td style='color:red;'><?php echo $recreational_sum + $awareness_raising_sum + $training_sum + $social_mobilization_sum;?></td>

      </tr>
<?php  ?>
    </tbody>
              </table>

");
$mpdf->Output();   exit;
 ?>

【问题讨论】:

【参考方案1】:

您的代码非常混乱。字符串中的 PHP 代码只是一个字符串,不再是代码。您应该正确编写代码。

<?php
require_once 'components/app.php';
include('connection.php');
include('mpdf/mpdf.php');

$content = '
<table id="fixed_table" class="table table-bordered table-hover">
    <thead>
        <tr>
            <th>District</th>
            <th>Union Council</th>
            <th>Village</th>
            <th>Recreational</th>
            <th>Awareness Raising</th>
            <th>Training</th>
            <th>Social Mobilization</th>
            <th>Total Activities</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="color:red;"><b>' . getTotalDistrictUnique() . '</b></td>
            <td style="color:red;"><b>' . getTotalUnionCouncilUnique() . '</b></td>
            <td style="color:red;"><b>' . getTotalVillages() . '</b></td>
            <td style="color:red;"><b>' . getTotalRecreational() . '</b></td>
            <td style="color:red;"><b>' . getTotalAwareness() . '</b></td>
            <td style="color:red;"><b>' . getTotalTraining() . '</b></td>
            <td style="color:red;"><b>' . getTotalSocial() . '</b></td>
            <td style="color:red;"><b>' . (getTotalRecreational() + getTotalAwareness() + getTotalTraining() + getTotalSocial()) . '</td>
        </tr>
';

$query ='select * from general';
$run =mysqli_query($con,$query);
while ($row=mysqli_fetch_array($run)) 
    $id=$row[0];
    $createdate=$row[1];
    $createday=$row[2];
    $partnername=$row[3];
    $district=$row[4];
    $unioncouncil=$row[5];
    $village=$row[6];
    $vannumber=$row[7];
    $facilitator=$row[8];
    $beneficiarytype=$row[9];
    $rmultimedia=$row[10];
    $rgame=$row[11];
    $rsprort=$row[12];
    $rart=$row[13];
    $rgroupreading=$row[14];
    $rother=$row[15];
    $alandminer=$row[16];
    $apersonalsafety=$row[17];
    $abirthregister=$row[18];
    $aother=$row[19];
    $tstickstone=$row[20];
    $tohthers=$row[21];
    $sbirthregister=$row[22];
    $sother=$row[23];
    $formnumber=$row[24];
    $submitdatatime=$row[25];

    $rmultimedia_value   = $rmultimedia == 'true' ? 1 : 0;
    $rgame_value         = $rgame == 'true' ? 1 : 0;
    $rsprort_value       = $rsprort == 'true' ? 1 : 0;
    $rart_value          = $rart == 'true' ? 1 : 0;
    $rgroupreading_value = $rgroupreading == 'true' ? 1 : 0;
    $rother_value        = $rother == 'true' ? 1 : 0;
    $recreational_sum    = $rmultimedia_value + $rgame_value + $rsprort_value + $rart_value + $rgroupreading_value + $rother_value;

    $alandminer_value      = $alandminer == 'true' ? 1 : 0;
    $apersonalsafety_value = $apersonalsafety == 'true' ? 1 : 0;
    $abirthregister_value  = $abirthregister == 'true' ? 1 : 0;
    $aother_value          = $aother == 'true' ? 1 : 0;
    $awareness_raising_sum = $alandminer_value + $apersonalsafety_value + $abirthregister_value + $aother_value;

    $tstickstone_value = $tstickstone == 'true' ? 1 : 0;
    $tohthers_value    = $tohthers == 'true' ? 1 : 0;
    $training_sum      = $tstickstone_value + $tohthers_value;

    $sbirthregister_value    = $sbirthregister == 'true' ? 1 : 0;
    $sother_value            = $sother == 'true'? 1 : 0;
    $social_mobilization_sum = $sbirthregister_value + $sother_value;

    $content .= '
    <tr>
        <td>' . $district . '</td>
        <td>' . $unioncouncil . '</td>
        <td>' . $village . '</td>
        <td>' . $recreational_sum . '</td>
        <td>' . $awareness_raising_sum . '</td>
        <td>' . $training_sum . '</td>
        <td>' . $social_mobilization_sum . '</td>
        <td style="color:red;">' . ($recreational_sum + $awareness_raising_sum + $training_sum + $social_mobilization_sum) . '</td>
    </tr>';


$content .= '</tbody></table>';

$mpdf=new mPDF();
$mpdf->WriteHTML($content);


$mpdf->Output();
exit;
?>

【讨论】:

【参考方案2】:

写下这些行:

<td style='color:red;'><b><?php echo getTotalDistrictUnique();?></b></td>

像这样:

<td style='color:red;'><b>".getTotalDistrictUnique()."</b></td>

你的代码是这样构建的:

<?php 
 ...
 <?php // this is wrong, the opening PHP tag is still alive
  ... getTotalDistrictUnique()...
 ?>
?>

【讨论】:

mPDF错误:部分数据已经输出到浏览器,无法发送PDF文件 比你在getTotalDistrictUnique() 函数中的echo | print_r | var_dump | ...(输出)命令。该函数必须返回(不显示)您的数据。 永远欢迎。【参考方案3】:

您与php 的连接不正确。 请检查下面的代码,如果在评论框中有任何问题,请告诉我。

<?php 
require_once 'components/app.php';
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$html = "";
$html .= "
<table id='fixed_table' class='table table-bordered table-hover'>
    <thead>
        <tr>
        <th>District</th>
        <th>Union Council</th>
        <th>Village</th>
        <th>Recreational</th>
        <th>Awareness Raising</th>
        <th>Training</th>
        <th>Social Mobilization</th>
        <th>Total Activities</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td style='color:red;'><b>".getTotalDistrictUnique()."</b></td>
        <td style='color:red;'><b>".getTotalUnionCouncilUnique()."</b></td>
        <td style='color:red;'><b>".getTotalVillages()."</b></td>
        <td style='color:red;'><b>".getTotalRecreational()."</b></td>
        <td style='color:red;'><b>".getTotalAwareness()."</b></td>
        <td style='color:red;'><b>".getTotalTraining()."</b></td>
        <td style='color:red;'><b>".getTotalSocial()."</b></td>
        <td style='color:red;'><b>".(getTotalRecreational() + getTotalAwareness() + getTotalTraining() + getTotalSocial())."</td>
    </tr>";

    include('connection.php');
    $query ='select * from general';
    $run =mysqli_query($con,$query);
    while ($row=mysqli_fetch_array($run)) 
    $id=$row[0];
    $createdate=$row[1];
    $createday=$row[2];
    $partnername=$row[3];
    $district=$row[4];
    $unioncouncil=$row[5];
    $village=$row[6];
    $vannumber=$row[7];
    $facilitator=$row[8];
    $beneficiarytype=$row[9];
    $rmultimedia=$row[10];
    $rgame=$row[11];
    $rsprort=$row[12];
    $rart=$row[13];
    $rgroupreading=$row[14];
    $rother=$row[15];
    $alandminer=$row[16];
    $apersonalsafety=$row[17];
    $abirthregister=$row[18];
    $aother=$row[19];
    $tstickstone=$row[20];
    $tohthers=$row[21];
    $sbirthregister=$row[22];
    $sother=$row[23];
    $formnumber=$row[24];
    $submitdatatime=$row[25];

    $html .= '<tr>';

    $html .= '<td>'.$district;
    $html .= '</td>';

    $html .= '<td>'.$unioncouncil;
    $html .= '</td>';

    $html .= '<td>'.$village;
    $html .= '</td>';

    if($rmultimedia=='true')
    
        $rmultimedia_value = 1;
    
    else
        $rmultimedia_value = 0;
    

    if($rgame=='true')
    
        $rgame_value = 1;
    
    else
        $rgame_value = 0;
    

    if($rsprort=='true')
    
        $rsprort_value = 1;
    
    else
        $rsprort_value = 0;
    

    if($rart=='true')
    
        $rart_value = 1;
    
    else
        $rart_value = 0;
    

    if($rgroupreading=='true')
    
        $rgroupreading_value = 1;
    
    else
        $rgroupreading_value = 0;
    

    if($rother=='true')
    
        $rother_value = 1;
    
    else
        $rother_value = 0;
    

    $recreational_sum = $rmultimedia_value + $rgame_value + $rsprort_value + $rart_value + $rgroupreading_value + $rother_value;

    $html .= '<td>'.$recreational_sum;
    $html .= '</td>';

    if($alandminer=='true')
    
        $alandminer_value = 1;
    
    else
        $alandminer_value = 0;
    

    if($apersonalsafety=='true')
    
        $apersonalsafety_value = 1;
    
    else
        $apersonalsafety_value = 0;
    

    if($abirthregister=='true')
    
        $abirthregister_value = 1;
    
    else
        $abirthregister_value = 0;
    

    if($aother=='true')
    
        $aother_value = 1;
    
    else
        $aother_value = 0;
    

    $awareness_raising_sum = $alandminer_value + $apersonalsafety_value + $abirthregister_value + $aother_value;

    $html .= '<td>'.$awareness_raising_sum;
    $html .= '</td>';

    if($tstickstone=='true')
    
        $tstickstone_value = 1;
    
    else
        $tstickstone_value = 0;
    

    if($tohthers=='true')
    
        $tohthers_value = 1;
    
    else
        $tohthers_value = 0;
    

    $training_sum = $tstickstone_value + $tohthers_value;

    $html .= '<td>'.$training_sum;
    $html .= '</td>';

    if($sbirthregister=='true')
    
        $sbirthregister_value = 1;
    
    else
        $sbirthregister_value = 0;
    

    if($sother=='true')
    
        $sother_value = 1;
    
    else
        $sother_value = 0;
    

    $social_mobilization_sum = $sbirthregister_value + $sother_value;

    $html .= '<td>'.$social_mobilization_sum;
    $html .= '</td>';

    $html .= '<td style="color:red;">'.($recreational_sum + $awareness_raising_sum + $training_sum + $social_mobilization_sum);
    $html .= '</td>';

    $html .= '</tr>';
    $html .= '</tbody>';
    $html .= '</table>';

    $mpdf->WriteHTML($html);

    $mpdf->Output();   exit;
?>

【讨论】:

解析错误:语法错误,第 217 行 /home/gitconsultants/unicefnew.gitconsultants.net/file.php 中的文件意外结束 我认为您缺少php 的某些内容。调试它!

以上是关于用双引号或单引号打印 HTML 和 PHP 代码的主要内容,如果未能解决你的问题,请参考以下文章

PHP中单引号双引号使用原则

PHP中单引号双引号使用原则

mysql+php程序中sql语句中的引号使用方法,啥时候用双引号啥时候用单引号

python基础

python基础

python基础