2013-04-24 49 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>";