永发信息网

php操作xml时编码出错

答案:2  悬赏:0  手机版
解决时间 2021-02-25 21:42
  • 提问者网友:無理詩人
  • 2021-02-25 02:26
Warning: DOMDocument::load(): I/O warning : failed to load external entity "file:///F:/webdevelop/Apache2.2/htdocs/employManager2.0/db.xml" in F:\webdevelop\Apache2.2\htdocs\employManager2.0\tools\SqlTool.class.php on line 16
加载xml文件失败
上面是出错信息,不知道怎么回事,我写了个DTD文件和XML文件,保存为UTF-8编码,可关掉后再打开又变成ANSI,新建文件重新写也是一样,求解。

dtd文件如下:










xml文件如下:




127.0.0.1
root
root
empmanager



SqlTool.class.php文件:
class SqlTool{
private $link;
private $host;
private $username;
private $password;
private $dbname;

public function __construct(){
$doc=new DOMDocument();
if(!$doc->load("db.xml")){
die("加载xml文件失败");
}
$xpath=new DOMXPath($doc);
$this->host=$xpath->query("//host")->item(0)->nodeValue;
$this->username=$xpath->query("//username")->item(0)->nodeValue;
$this->password=$xpath->query("//password")->item(0)->nodeValue;
$this->dbname=$xpath->query("//dbname")->item(0)->nodeValue;
$this->link=new mysqli($this->host, $this->user, $this->password, $this->database);
if ($this->link->connect_error) {
die('连接数据失败('.$this->link->connect_errno.')'.$this->link->connect_error);
}
$this->link->set_charset($link, "utf-8");
}
}

?>

我用test.php测试就出现问题:
test.php代码:
header("content-type:text/html;charset=utf-8");
require_once './tools/SqlTool.class.php';

$link=new SqlTool();
if ($link) {
echo "测试连接成功";
}else {
echo "测试连接失败";
}
?>
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-02-25 03:08
load XML的路径不对,建议是用绝对路径
全部回答
  • 1楼网友:执傲
  • 2021-02-25 03:51
你的php是什么编码,生成的文件即什么编码。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯