【问题标题】:Get absolute path of a relative path of a XML file获取 XML 文件的相对路径的绝对路径
【发布时间】:2018-09-10 04:10:58
【问题描述】:

是否可以猜测我为加载 XML 文件指定的相对路径的绝对路径?这是我的编码:

$strXML = __DIR__ . "/../xml/file.xml";
$xmlFile = simplexml_load_file($strXML);

$strPath = fullPathFunction($xmlFile);  //Desired function

【问题讨论】:

  • 为什么要猜测什么时候可以使用realpath()
  • @Phil 我已经在使用 realpath() 函数,但是当我使用它时,我只是得到 /home/user/public_html 但我的预期结果是 /home/user/public_html/xml/file.xml
  • 尝试$strXML = __DIR__ . '/../xml/file.xml'; 假设路径是相对于您的.php 脚​​本
  • @Phil 我想我们就在附近。 __DIR__ 正在获取我的 .php 文件的路径,所以它得到了 /home/user/public_html/php 但我的 .xml 文件在 /home/user/public_html/xml 目录中
  • 是的,我意识到这一点。这就是路径/../xml/file.xml 附加到__DIR__ 的原因。如果__DIR__/home/user/public_html/php,那么/home/user/public_html/php/../xml/file.xml 将解析(通过realpath())为/home/user/public_html/xml/file.xml。如果您现在使用__DIR__,请更新您问题中的代码

标签: php relative-path absolute-path


【解决方案1】:

你可以使用realpath函数:

$strXML = "../xml/file.xml";
$xmlFile = simplexml_load_file($strXML);

$strPath = realpath($strXML);

【讨论】:

  • 我已经在使用 realpath() 函数,但是当我使用它时,我只是得到/home/user/public_html,但我的预期结果是/home/user/public_html/xml/file.xml
  • 这没有意义。 realpath 将返回包含文件的文件夹,在这种情况下 /home/user/public_html/xml,请打印 $file 的 var_dump 用作 realpath 函数中的参数。
  • 更新:添加文件名以完成预期结果。
  • 结果是string(15) "../xml/file.xml"
  • 请检查我发布的屏幕,它对我有用:S
猜你喜欢
  • 1970-01-01
  • 2022-06-10
  • 2011-02-07
  • 2012-10-25
  • 1970-01-01
  • 2016-11-19
  • 2011-08-11
  • 2010-09-21
相关资源
最近更新 更多