2010-07-12 25 views
1
<?php 
    $server = $_SERVER["SERVER_NAME"]; 
    $pathpath = realpath("../../files/uploaded_file.jpg"); 
    echo "You can link to the file using the following link... $server$pathpath"; 
?> 

不幸的是这将产生以下...PHP的realpath没有产生有用的结果

www.example.com/home/fhlinux123/g/example.com/user/htdocs/ninja/base/files/1.doc 

而什么我后如下...

www.example.com/files/uploaded_file.jpg 

我不能假设该文件夹'文件'将始终在同一个目录中。

+0

真实路径解析'..'从当前目录。除非'chdir'另有改变,否则该目录就是您的PHP文件所在的目录...或者在符号链接的php文件中调用该目录。 – Powerlord 2010-07-12 13:42:26

回答

2

这是因为realpath从服务器根目录返回绝对路径,而不是Web服务器htdocs根目录。 您可以从$ _ SERVER [“DOCUMENT_ROOT”]检索Web服务器的htdocs根,然后剥离,从结果的真实路径通过返回开始

快速和肮脏的例子:

$server = $_SERVER["SERVER_NAME"]; 
$pathpath = realpath("../../files/uploaded_file.jpg"); 
$serverPath = $_SERVER["DOCUMENT_ROOT"]; 
$pathpath = substr($pathpath,strlen($serverPath)); 

echo "You can link to the file using the following link... $server$pathpath";