【发布时间】:2014-08-28 04:12:47
【问题描述】:
我创建了一个 php 脚本来从 xml 读取数据并将其写入 oracle 数据库 xml 数据具有 html 标签。有英语、俄语、意大利语、德语等多种语言。
在 php 中,我从 xml 中读取数据
$xml=simplexml_load_file($file);
foreach($xml as $value)
{
$text='';
if($value->englishtext=='')
{
$text=htmlentities(str_replace("'", "'", $value->translatedtext), ENT_HTML5);
}
else
{
$text=htmlentities(str_replace("'", "'", $value->englishtext), ENT_HTML5);
}
}
插入查询是 插入国际化值 (seq_id.nextval,$text)
$stid2 = oci_parse(
$conn,
"INSERT INTO UILABELINT VALUES (seq_uilabelint_id.nextval,'".$localeid."','".$filename."','".$value['ID']."',$text)"
);
我真正的问题是有时数据插入正确,有时 html 标签编码不正确。
任何人都可以建议我
- 天气我应该使用 htmlentities() 还是不使用。
- 我应该怎么做才能在 html5 中显示这些 html 标签。
xml数据示例
<?xml version="1.0" encoding="UTF-8"?>
<Resources>
<Section ID="AddListing">
<englishtext><![CDATA[Add Listing]]></englishtext>
<translatedtext/>
</Section>
<Section ID="DirectPayment">
<englishtext><![CDATA[Receive <b>direct payments</b> from travelers.]]</englishtext>
<translatedtext/>
</Section>
</Resources>
【问题讨论】:
-
请引用您正在使用的确切插入查询
-
$stid2 = oci_parse($conn, "INSERT INTO UILABELINT VALUES (seq_uilabelint_id.nextval,'".$localeid."','".$filename."','".$value[ 'ID']."',$text)");
-
您能否分享一个未正确编码的 html 标签的示例?
-
hmmm...
&st;甚至不是一个有效的 HTML 实体。不确定htmlspecialchars是否会有所作为,但您尝试过吗?
标签: php xml oracle internationalization