我正试图将XML代码保存为PHP中的字符串,以便稍后将其保存到数据库中。然而,无论我使用"还是",XML似乎总是被执行的。
$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>';
我做错了什么?
仅用<
替换<
,用>
替换>
$variable = 12345;
$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>';
$temp_var1 = str_replace('<','<',$Cxml);
$temp_var2 = str_replace('>','>',$temp_var1);
echo $temp_var2;
输出:<Conds><C><FieldNo>119</FieldNo><Filter>12345</Filter></C></Conds>
更新:
htmlspecialchar()函数生成相同的输出。例如:
$Cxml = '<Conds><C><FieldNo>119</FieldNo><Filter>' . $variable . '</Filter></C></Conds>';
echo htmlspecialchars($Cxml);
解释:
HTML字符编码器将所有适用的字符转换为相应的HTML实体。某些字符在HTML中具有特殊意义,应该转换为正确的HTML实体以保留其含义。
例如,不可能使用<字符,因为它在HTML语法中用于创建和关闭标记。它必须转换为相应的<
HTML实体才能显示在HTML页面的内容中。HTML实体名称区分大小写。