2010-11-06 39 views
0


我在PHP脚本中引用我的网站上的文件时遇到了一些问题。比方说,完整的路径是在PHP中引用文件的问题

www.mydomain.com/img/peggy.jpg 

我无法使用相对在

../img/peggy.jpg 

解决诸如因为剧本是其中包括在不同层次的几个文件包含文件。

/img/peggy.jpg 

似乎也没有工作。我如何参考绝对路径?
TIA
史蒂芬

回答

0

通过明确写的完整路径解决:

/home2/mydomain/public_html/img/peggy.jpg 

自我提醒:必须编辑这个如果我移动到另一个托管服务。即使我目前的托管服务(Bluehost)也可能有一天决定重新安排它的文件结构。
其他解决方案仍然欢迎!

0

你将不得不使用dirname(__FILE__) . "/img/peggy.jpg"

您可以使用多个,还有:dirname(dirname(__FILE__)) ...

+0

这(第二种形式)给出了完整的路径,如'http:// mydomain.com/img/peggy.jpg',但它似乎没有按照' file_exists';它会报告该文件不存在,但它确实存在。无论如何感谢您的答复。 – stevenvh 2010-11-06 18:52:53

+0

file_exists采用相对路径,而不是以URL的形式。如果文件存在且不可访问,则使用'file_exists(dirname(__ FILE__)。“/img/peggy.jpg”)将返回TRUE。 – 2010-11-06 19:02:14

+0

例如,http://skydrive.provanix.com/(我的一个子域)显示了页面index.php的路径(您看到的页面)。最后一行显示index.php存在。文件夹htdocs是我的网站根目录,_skydrive是我的子域文件夹。 – 2010-11-06 19:07:40

0

$_SERVER['DOCUMENT_ROOT']指向当前Web根目录的绝对路径。

+0

谢谢。似乎工作,直到我尝试在子域中的文件,如'sub.mydomain.com'。然后我得到完整路径'/ home2/mydomain/public_html/sub/img/peggy.jpg'。 'sub'不应该在那里。有没有办法摆脱它? – stevenvh 2010-11-06 18:42:14

1

你可以在你的index.php中使用define(BASE_PATH, dirname(__FILE__))
然后使用$fileName = BASE_PATH . "/img/peggy.jpg";