【问题标题】:PHP can't open local file when called externallyPHP在外部调用时无法打开本地文件
【发布时间】:2010-09-23 04:51:30
【问题描述】:

我在我正在开发的网站上使用 WorldPay 支付网关。它处理所有信用卡授权,然后在我的服务器上调用一个包含交易信息的 PHP 文件。它从我的脚本中获取输出并将其显示在 WorldPay chrome 中。

我不知道内部工作原理,但我想他们会使用类似于 cURL 的东西将事务详细信息发布到我的脚本,然后检索输出。

我的脚本将必要的信息写入一个 XML 文件,发送一封电子邮件,然后感谢客户与我们一起购物。

我的问题是,当我通过直接调用文件(通过关闭安全检查并在浏览器中访问 http://example.com/mysite/myscript.php)来测试我的文件时,一切都按计划进行,但是当我通过支付系统时(所以我假设我的脚本是通过 cURL 调用的),它在这一行失败:

$xml = simplexml_load_file('./info.xml');

有什么想法吗??

澄清:该行返回 false,这会破坏以下行。

【问题讨论】:

    标签: php curl


    【解决方案1】:

    您确定info.xml 的路径正确吗?当我包含子目录中的文件时,这有时会让我感到困惑。

    【讨论】:

      【解决方案2】:

      这可能有点牵强,但请检查一下 php 与相对路径分辨率的头号混淆之一。

      './' 
      

      相对于入口点所在的位置,而不是脚本,这就是我使用

      的原因
      dirname(__FILE__).'/' 
      

      到处都是。

      【讨论】:

        【解决方案3】:

        检查您的 HTTP 错误日志——确保它们已打开。

        可能是读取文件权限问题。

        【讨论】:

          猜你喜欢
          • 2013-11-27
          • 1970-01-01
          • 2015-04-18
          • 1970-01-01
          • 2017-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-05
          相关资源
          最近更新 更多