2016-04-04 53 views
0

我試圖將PHP代碼保存爲PHP中的字符串,以便稍後將其保存到數據庫中。但是,無論使用「」還是「」,XML似乎都會被執行。將XML代碼保存爲PHP中的字符串

$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 

我在做什麼錯?

+2

你期待什麼行爲,你得到了什麼樣的行爲? – JayIsTooCommon

+0

我期待'$ variable = 2; 'Cxml =''',我得到'$ Cxml = 1192' – prgrm

回答

1

通過&gt;

$variable = 12345; 
$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 
$temp_var1 = str_replace('<','&lt;',$Cxml); 
$temp_var2 = str_replace('>','&gt;',$temp_var1); 
echo $temp_var2; 

輸出只需更換<通過&lt;><Conds><C><FieldNo>119</FieldNo><Filter>12345</Filter></C></Conds>

更新:

的用htmlspecialchars()函數生成相同的輸出。例如:

$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>'; 
echo htmlspecialchars($Cxml); 

說明:

的HTML字符編碼所有適用的字符轉換爲它們相應的HTML實體。某些字符在HTML中有特殊意義,應該轉換爲正確的HTML實體以保留其含義。

例如,不可能使用<字符,因爲它在HTML語法中用於創建和關閉標記。必須將其轉換爲相應的&lt; HTML實體才能顯示在HTML頁面的內容中。 HTML實體名稱區分大小寫。

+0

謝謝。然而,當我嘗試將其保存到數據庫中時,輸出將起作用,&被&替換爲&lt;&gt;。 – prgrm