PHP - 在不知道扩展名的情况下检查文件是不是存在
Posted
技术标签:
【中文标题】PHP - 在不知道扩展名的情况下检查文件是不是存在【英文标题】:PHP - Check if file exists without knowing the extensionPHP - 在不知道扩展名的情况下检查文件是否存在 【发布时间】:2013-08-31 15:43:36 【问题描述】:我已经看到this question,但它对我不起作用。
我需要做的是检查文件是否存在,在 php 中,不知道扩展名。 我使用此代码:
<?php
if (count(glob("/database/".$_REQUEST['thetitle'].".*")) == 0)
echo 'true';
else
echo 'false';
?>
编辑: 也许它是相关的说脚本位于
[root]/functions/validatefilename.php
和数据库中的
[root]/database/
但无论文件名 ($_REQUEST['thetitle']
) 是什么,它总是返回 false。
【问题讨论】:
我怀疑您的文件位于/database/...
。那是磁盘的根!
对,我忘了。在 html 中,/database/
将是我域根目录下的文件夹。那么你将如何在 PHP 中做到这一点?
URLs 在 HTML 中是相对于当前/根 URL,本地文件路径是相对于文件的位置位于磁盘/磁盘根目录上。 PHP 并不真正关心 URL。 URL 与本地文件路径无关,反之亦然。
【参考方案1】:
尝试:
count(glob("./database/".$_REQUEST['thetitle'].".*"))
【讨论】:
count(glob("../database/".$_REQUEST['thetitle'].".*")) 你确定你对数据库文件夹有正确的权限吗? http://www.php.net/glob 它成功了,这可能要归功于权限。但我也使用了if (glob("../database/".$_REQUEST['thetitle'].".*") == "")
【参考方案2】:
在我看来它工作正常,只是您应该指定完整路径:
if (count(glob( "/path/to/" . "database/" .$_REQUEST['thetitle']. ".*")) == 0)
【讨论】:
正如我现在编辑的问题所示,/database/ 直接位于根目录之后,例如 website.com/database/ 你可能仍然需要明确地绘制出整个路径 我尝试了$thevar = glob("http://www.daltonempire.nl/database/Hello.*"); echo '"'; print_r($thevar); echo '"';
并在那里放置了一个名为“Hello.png”的文件,但它仍然会回显“”以上是关于PHP - 在不知道扩展名的情况下检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
如何在不读取 InputStream 的情况下检查 InputStream 是不是为空?