PHP读取数据库中记录生成XML时,记录中有中文怎么办

php中文网
发布: 2016-06-23 14:15:07
原创
886人浏览过

我希望用PHP的DOM函数生成XML文档,如果文档中有中文就出错,即使用CDATA包含中文也没用,代码如下:
 require('conn.php');
$owen1='学生工作';
header('Content-type:text/xml');
$result=$conn->query("select * from news where BigClassName='$owen1' limit 4");

if ($result)

$dom = new DOMDocument('1.0','UTF-8');
$dom->formatOutput=true;
$rcs = $dom->createElement("rss");

 
while ($row=$result->fetch_assoc()){
//print_r($arr); 
$rc = $dom->createElement("channel");
    $mydate=$dom->createElement("title");
    $myname = $dom->createElement("link");
   
    $mydescription=$dom->createElement("description");
 $myhp=$dom->createElement("item");
 $date=$row['title'];
    $datetext = $dom->createTextNode('');
    $mydate->appendChild($datetext);
    $nametext=$dom->createTextNode($name);
    $myname->appendChild($nametext);
    $hptext=$dom->createTextNode($hp);
    $myhp->appendChild($hptext);
    $descriptiontext=$dom->createTextNode($description);
    $mydescription->appendChild($descriptiontext);
    $rcs->appendChild($rc);
    $rc->appendChild($mydate);
    $rc->appendChild($myname);
    $rc->appendChild($myhp);
    $rc->appendChild($mydescription);


  $dom->appendChild($rcs);
     echo $dom->saveXML();     


执行,就提示在最新动态这遇到不合格式的字符,要怎么改啊


回复讨论(解决方案)

补充下,我这个PHP文件编码是gb2312的

写入 XML 的要用 utf-8 编码的数据
两个方案:
1、在你的代码中就从数据库中读出的数据都用 iconv 函数转码
$date = iconv('gbk', utf-8', $row['title']);
$datetext = $dom->createTextNode(iconv('gbk', utf-8', ''));
其他类同

2、直接从数据库中读取 utf-8 编码的数据
$conn->query("set nemes utf8");
$owen1 = iconv('gbk', utf-8', '学生工作');
其他都不变

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号