2013-04-24 24 views
2

我正在开发一个PHP脚本的问题。有时(非常少见,但它发生)字符串不会正确连接,因为字符串的片断在进程中丢失,导致随机截断的字符串。字符串获得在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的共享主机托管。

+0

为什么要使用'='? – Amir 2013-04-24 14:02:25

+0

要小心使用“和”,如果你使用“within”标签,试着使用“\”,希望这对我有帮助 – Naruto 2013-04-24 14:06:54

+0

@Amir我使用。=因为我需要在发送邮件之前将所有信息收集到一个字符串变量中,因为它是一个相当长的字符串,我宁愿将它分解成更小的字符串。 – 2013-04-24 14:27:14

回答

0

尝试使用

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

我会尝试以这种方式编辑代码,看看问题是否会再次出现,谢谢 – 2013-04-25 18:59:08

0

您也可以尝试

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