2013-08-28 34 views
-1

我已經看到this question,但它不適用於我。PHP - 檢查文件是否存在,但不知道分機

我需要做的是檢查一個文件是否存在,在PHP中,而不知道擴展名。 我用這個代碼:

<?php 
if (count(glob("/database/".$_REQUEST['thetitle'].".*")) == 0) { 
echo 'true'; 
} else { 
echo 'false'; 
} 
?> 

編輯: 也許是相關的話說,腳本位於

[root]/functions/validatefilename.php 

[root]/database/ 

的數據庫,但它始終返回false,不管文件名是什麼($_REQUEST['thetitle'])。

+0

我懷疑你的文件是'/數據庫/ ...' 。這是磁盤的*根!* – deceze

+0

對,我忘了。在HTML中,'/ database /'將成爲我的域的根目錄下的一個文件夾。那麼你如何在PHP中做到這一點? – Isaiah

+1

* HTML中的URL *與當前的/ root * URL *相關,*本地文件路徑*相對於文件在磁盤/磁盤根目錄中的位置。 PHP並不關心URL。 URL與本地文件路徑無關,反之亦然。 – deceze

回答

2

嘗試:

count(glob("./database/".$_REQUEST['thetitle'].".*")) 
+0

仍然無效 – Isaiah

+0

count(glob(「../database/".$_ REQUEST ['thetitle']。」。*「)) –

+0

您確定您擁有數據庫文件夾的權限嗎? [http://www.php.net/glob](http://www.php.net/glob) –

1

在我看來就像它的工作原理,除了罰款,你應該指定的完整路徑:

if (count(glob("/path/to/" . "database/" .$_REQUEST['thetitle']. ".*")) == 0) { 
+0

正如我現在編輯的問題所說明的,/ database /直接之後的根目錄,如website.com/database/ – Isaiah

+0

你仍然可能需要明確地繪製出整個路徑 – XaxD

+0

我試過'$ thevar = glob(「http://www.daltonempire.nl/database/Hello.*」) ; echo'「'; print_r($ thevar); echo'」';'我在那裏放了一個名爲「Hello.png」的文件,但它仍然會回顯「」 – Isaiah