Php - 文件路径的麻烦

时间:2009-07-02 18:30:27

标签: php file path

我无法理解一件事。在代码中,例如:

$filePath = 'http://wwww.server.com/file.flv';

if( file_exist($filePath) )
{
  echo 'yes';
}
else
{
  echo 'no';
}

为什么脚本会返回'no',但是当我将该链接复制到它下载的浏览器时?

6 个答案:

答案 0 :(得分:2)

file_exists()函数正在查找从服务器文件系统的角度来看存在的文件或目录。如果http://www.server.com/等同于/ home / username / public_html /那么您需要制作代码:

$filename = '/home/username/public_html/file.flv';
if(file_exists($filename))
{ 
 //true branch 
}
else
{
 //false brach
}

有关详细信息,请参阅http://php.net/file_exists

答案 1 :(得分:1)

答案 2 :(得分:1)

使用

$_SERVER["DOCUMENT_ROOT"] 

确保正确的文件系统路径,例如,不依赖于开发或生产系统。

在这种情况下,它将是

$filePath = $_SERVER["DOCUMENT_ROOT"].'/file.flv';

答案 3 :(得分:0)

file_exists()检查文件系统文件和目录。使用fopen()也可以查看该Web URL是否可访问。如果相应的服务器将为该资源返回404 Not Found,则fopen()将返回false并发出警告。更好的解决方案是发出HTTP HEAD请求。

答案 4 :(得分:0)

首先,你需要使用的php函数是file_exists(),最后是's'。其次,我认为文件的路径需要是本地文件路径,而不是URL。虽然不确定......

答案 5 :(得分:0)

做的:

function isExistsFileOnMyWebsite($fileName) {
    return file_exist($_SERVER['DOCUMENT_ROOT'].'/'.$fileName);
}

if( isExistsFileOnMyWebsite('file.flv') )
{
    echo 'yes';
}
else
{
    echo 'no';
}