如何对esc_html输出的数值执行数学运算并正确显示计算结果?
如何对esc_html输出的数值执行数学运算并正确显示计算结果?
嗨,我来帮你搞定这个问题~你之前的写法之所以会把运算符和数值一起打印出来,是因为你把PHP输出的数值和页面里的普通文本(*、/这些符号)混在一起了,浏览器只会把它们当成字符串内容直接显示,不会帮你做数学计算。
正确的做法是先在PHP代码里完成计算,再用esc_html输出最终结果,这样页面就会显示计算后的数值啦。给你两种写法参考:
写法一:分步计算(可读性更高)
<?php // 先把需要运算的数值取出来 $click_count = $referral_stats['click']; $conversion_rate = $referral_stats['conv_rate']; // 执行数学运算 $calculated_result = ($click_count * $conversion_rate) / 100; // 转义后输出结果 echo esc_html($calculated_result); ?>
写法二:一行简化版
如果觉得分步写太啰嗦,也可以直接把计算逻辑放到esc_html的参数里:
<?php echo esc_html( ($referral_stats['click'] * $referral_stats['conv_rate']) / 100 ); ?>
要是你因为某些需求必须在前端(浏览器端)做计算,也可以用JavaScript实现,但记得要用esc_js来转义数值,避免安全问题:
<script> // 把PHP里的数值转义后传给JS变量 const click = <?php echo esc_js($referral_stats['click']); ?>; const convRate = <?php echo esc_js($referral_stats['conv_rate']); ?>; // 执行计算 const result = (click * convRate) / 100; // 把结果插入到页面的某个元素中 document.getElementById('calc-result').textContent = result; </script> <!-- 用来显示结果的元素 --> <div id="calc-result"></div>
一般更推荐用PHP端计算的方式,因为服务器端运算更安全,也能避免前端可能出现的异常情况~
备注:内容来源于stack exchange,提问作者Jituu
相关产品推荐
相关产品推荐

