【问题标题】: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 与本地文件路径无关,反之亦然。

标签: php file-extension glob file-exists


【解决方案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”的文件,但它仍然会回显“”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2018-09-22
  • 2011-09-23
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多