字符串在PHP中随机截断

时间:2013-04-24 13:52:22

标签: php string truncate

我正在开发一个PHP脚本的问题。有时(非常罕见,但它发生)字符串不能正确连接,因为字符串的片段在此过程中丢失,导致随机截断的字符串。

这是一个例子,它是收集订单信息并通过电子邮件发送给客户端的代码的一部分(这就是为什么我被迫使用html表)。

$rowList[$rowCode] .= '<tr><td class="lens-price-serv"><small>' . $lang['services'] . ':</small>&nbsp;<strong>' . money_format( '%i', $srvPriceTotal ) . '</strong></td></tr>';

代码工作得很好。但是今天早上,我收到了一封包含以下html的电子邮件(对应于我发布的PHP代码):

<tr><td class="lens-price-serv"><s>Services: <strong>€ 10,00</strong></s></td></tr>

我无法获得确切的HTML代码,这个代码来自Chrome的开发人员工具。我认为发生的是'小'标签在字符串连接期间被截断,成为一个开放的标签。没有相应的闭包'/ s'标签的这个标签在关闭'td'之前被浏览器自动关闭。

这个问题难以复制。我尝试使用相同的参数创建一个新订单,但它工作得很好。

这是这个问题第二次出现;它第一次出现在代码的另一部分上,但字符串也被截断,导致输出错误。

此问题可能是由服务器引起的吗?该脚本由运行Apache 2.2.24和PHP 5.3.21的共享主机托管。

2 个答案:

答案 0 :(得分:0)

尝试使用

$rowList[$rowCode] .= "<tr><td class='lens-price-serv'><small>$lang['services']:</small>&nbsp;<strong>" . money_format( '%i', $srvPriceTotal ) . "</strong></td></tr>";

答案 1 :(得分:0)

您也可以尝试

$rowList[$rowCode] .= "<tr><td class='lens-price-serv'><small>{$lang['services']}:</small>&nbsp;<strong>" . money_format( '%i', $srvPriceTotal ) . "</strong></td></tr>";