【问题标题】:PHP DOMDocument load XML timeoutPHP DOMDocument 加载 XML 超时
【发布时间】:2012-03-27 15:49:23
【问题描述】:

我使用这个动态生成 XML:

$domtree = new DOMDocument('1.0', 'UTF-8');
$domtree -> formatOutput = true;
$xmlRoot = $domtree -> createElement("theparent");
bla..bla..bla..
echo $domtree->saveXML();

我使用这个从 PHP 加载生成的 xml

$f = "http://localhost/myapp/xml/products.php"; //full url path
$doc = new DOMDocument();
$doc->load($f)

bla..bla..bla..

但执行时间很长,我收到此错误:

Warning: DOMDocument::load(http://localhost/myapp/xml/products.php) [function.load]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in F:\xampp\htdocs\myapp\loader\loadxml.php on line 14

Fatal error: Maximum execution time of 60 seconds exceeded in F:\xampp\htdocs\myapp\loader\loadxml.php on line 16

我曾经使用相同的方式完成过这个加载 XML 方法,但是为什么在这个应用程序中我得到了这个错误?是否有任何特殊的 xampp 或 php 设置?还是我的代码不正确?

谢谢你:)

【问题讨论】:

  • 顺便说一句,我使用的是 PHP 版本 5.0.5
  • 尝试使用文件路径的绝对路径,顺便说一句,它不应该是 products.xml 吗?并尝试下一个解决方案:php.net/manual/en/domdocument.load.php#91384
  • 不,它是 products.php。我动态生成了 XML,内容类型是 text/xml。顺便说一句,谢谢你的链接。我试试看..
  • @OfirBaruch 是的..它仍然不起作用:(
  • 试试if(!file_exists($f)) echo "the file doesn't exists";

标签: php xml load xml-parsing domdocument


【解决方案1】:

您的脚本正在尝试下载 php 文件,而不是获取 XML 输出。输出到服务器上的 XML 文件并取而代之,或者创建一个返回 XML 的 Web 服务,然后使用 cURL 之类的东西来使用它。

【讨论】:

  • 是的,我也这样做了。我也生成了 products.xml 并像上面一样加载,但它仍然无法正常工作:(。但我尝试了上面的评论 if(!file_exists($f)) 回显“文件不存在”,是的,为什么我的文件不存在不存在??
  • 哦。 allow_url_open 已禁用? (但这无论如何都会引发警告)。路径不对?严格的文件权限?
  • allow_url_open 开启或在 php.ini 或 phpinfo() 中有 1 个值。天哪,我的 php 有什么问题#O
猜你喜欢
  • 1970-01-01
  • 2011-05-27
  • 2010-12-13
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2019-02-12
  • 1970-01-01
相关资源
最近更新 更多