当前位置: 首页 > 后端技术 > PHP

ThinkPHP2Xml编译错误,缓存生成失败,请刷新页面问题

时间:2023-03-29 16:03:48 PHP

前言公司获取的团购网站,后台由ThinkPHP2编写。问题在使用过程中,发现一个问题:删除`runtime`缓存目录下的`~runtime.php`和`~app.php`这两个文件后,虽然还是会重新生成该目录,但是会在后台提示“xml编译错误,缓存生成失败,请刷新页面。”。调试后发现原因是\site\admin\ThinkPHP\Lib\Think\Template\TagLib.class.php文件第110行的simplexml_load_file()方法无法读取xml文件数据,从而couldn'tconvertthexmlintoanobject,所以报错。注释这一行的解决方法,使用SimpleXMLElement获取,源码如下:$file=file_get_contents($this->xml);$xml_result=newSimpleXMLElement($file);//$xml_result=simplexml_load_file($this->xml);if($xml_result){$array=(array)($xml_result);}else{header("Content-Type:text/html;charset=utf-8");echo"xml编译错误,缓存生成失败,请刷新页面。";exit;}备注我查看了simplexml_load_file()函数是否被禁用等,发现了问题。最后只好换成了SimpleXMLElement。如果找到根本原因,请提出来。