我在PHP脚本中引用我的网站上的文件时遇到了一些问题。比方说,完整的路径是在PHP中引用文件的问题
www.mydomain.com/img/peggy.jpg
我无法使用相对在
../img/peggy.jpg
解决诸如因为剧本是其中包括在不同层次的几个文件包含文件。
/img/peggy.jpg
似乎也没有工作。我如何参考绝对路径?
TIA
史蒂芬
我在PHP脚本中引用我的网站上的文件时遇到了一些问题。比方说,完整的路径是在PHP中引用文件的问题
www.mydomain.com/img/peggy.jpg
我无法使用相对在
../img/peggy.jpg
解决诸如因为剧本是其中包括在不同层次的几个文件包含文件。
/img/peggy.jpg
似乎也没有工作。我如何参考绝对路径?
TIA
史蒂芬
通过明确写的完整路径解决:
/home2/mydomain/public_html/img/peggy.jpg
自我提醒:必须编辑这个如果我移动到另一个托管服务。即使我目前的托管服务(Bluehost)也可能有一天决定重新安排它的文件结构。
其他解决方案仍然欢迎!
你将不得不使用dirname(__FILE__) . "/img/peggy.jpg"
。
您可以使用多个,还有:dirname(dirname(__FILE__))
...
$_SERVER['DOCUMENT_ROOT']
指向当前Web根目录的绝对路径。
谢谢。似乎工作,直到我尝试在子域中的文件,如'sub.mydomain.com'。然后我得到完整路径'/ home2/mydomain/public_html/sub/img/peggy.jpg'。 'sub'不应该在那里。有没有办法摆脱它? – stevenvh 2010-11-06 18:42:14
你可以在你的index.php中使用define(BASE_PATH, dirname(__FILE__))
。
然后使用$fileName = BASE_PATH . "/img/peggy.jpg";
这(第二种形式)给出了完整的路径,如'http:// mydomain.com/img/peggy.jpg',但它似乎没有按照' file_exists';它会报告该文件不存在,但它确实存在。无论如何感谢您的答复。 – stevenvh 2010-11-06 18:52:53
file_exists采用相对路径,而不是以URL的形式。如果文件存在且不可访问,则使用'file_exists(dirname(__ FILE__)。“/img/peggy.jpg”)将返回TRUE。 – 2010-11-06 19:02:14
例如,http://skydrive.provanix.com/(我的一个子域)显示了页面index.php的路径(您看到的页面)。最后一行显示index.php存在。文件夹htdocs是我的网站根目录,_skydrive是我的子域文件夹。 – 2010-11-06 19:07:40