请问simplexml_load_file在服务器上返回false是什么原因呢

gskddd 2016-12-06 09:12:44
代码:
<?php
if (file_exists('test.xml'))
{
$xml = simplexml_load_file('test.xml');
var_dump($xml);
}
?>


XML内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>


在本地测试是正常的,上传到服务器(阿里云)var_dump打印出来的就是false。
应该不是xml的问题,试了几个示例还是同样的情况。
但是simplexml_load_string就不会出现这种情况,上传到服务器打印出来也是正常的。

请问这种问题是什么原因,应该从什么地方入手解决呢?
小白一个 - - 查了一些资料也没解决,感谢回答。
...全文
680 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
挺挺挺挺挺 2018-09-07
  • 打赏
  • 举报
回复
simplexml_load_string() 很稳定
johnsontang 2018-08-26
  • 打赏
  • 举报
回复
最近遇到simplexml_load_file 不稳定的问题,基本上有40%-50%的概率会返回false,程序根本没法往下走下去
最后解决办法是用simplexml_load_string,然后强制转化达到目的
一起混吧 2016-12-06
  • 打赏
  • 举报
回复
检查simplexml_load_file() 函数是否被服务器禁用了
xuzuning 2016-12-06
  • 打赏
  • 举报
回复
那你就先这样完成调试 $xml = simplexml_load_string(file_get_contents('test.xml')); 再去找问题的原因
gskddd 2016-12-06
  • 打赏
  • 举报
回复
感谢版主! 是这样的 string(165) " George John Reminder Don't forget the meeting! "
xuzuning 2016-12-06
  • 打赏
  • 举报
回复
$xml = file_get_contents('test.xml'); var_dump($xml); 你先看看这样会有什么?
傲雪星枫 2016-12-06
  • 打赏
  • 举报
回复
显示所有被禁用的函数

$disfun=ini_get('disable_functions');
if (empty($disfun)){
  echo'没有禁用</p>';}
else{
echo ini_get('disable_functions').'</p>';}
}
傲雪星枫 2016-12-06
  • 打赏
  • 举报
回复
simplexml_load_string可以,表示你的xml没问题 simplexml_load_file不行,那就要检查路径是否正确,如果正确的,那可能是阿里云禁用了这个方法了。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧