You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML表单转PDF时含计算逻辑报错求助(附代码)

问题解决:PDF生成中实现年龄半值计算

你当前的代码只是将提交的年龄和/2拼接成字符串输出,并没有执行除法计算,所以PDF里会显示类似30/2的文本,而非实际计算结果。以下是修正方案:

核心修改点

  • 提前对输入的年龄做合法性校验,确保为有效数字
  • 完成年龄半值的计算后,再将结果插入PDF的HTML模板中

修正后的完整PHP代码

<?php
namespace Dompdf;
require_once 'dompdf/autoload.inc.php';

if(isset($_POST['submit_val'])) {
    // 初始化半年龄变量
    $halfAge = '';
    // 校验输入是否为有效数字
    if(isset($_POST['age']) && is_numeric($_POST['age'])) {
        $age = (float)$_POST['age'];
        $halfAge = $age / 2;
    } else {
        $halfAge = '请输入有效数字';
    }

    $dompdf = new Dompdf(); 
    $dompdf->loadHtml('
    <table border=1 align=center width=400>
    <tr><td>年龄 : </td><td>'.htmlspecialchars($_POST['age']).'</td></tr>
    <tr><td>年龄的一半 : </td><td>'.$halfAge.'</td></tr>
    </table>
    ');
    $dompdf->setPaper('A4', 'landscape');
    $dompdf->render();
    $dompdf->stream("",array("Attachment" => false));
    exit(0);
}
?>

额外优化说明

  • 加入htmlspecialchars()处理输入内容,避免XSS注入风险
  • 增加输入校验逻辑,当用户输入非数字内容时,会显示错误提示,防止计算报错
  • 用(float)转换年龄为浮点数,支持小数年龄的计算(比如10.5岁的半值为5.25)

内容的提问来源于stack exchange,提问作者user2021672

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:52:53