2012-08-26 91 views
2

我遇到了一個與php glob函數有關的特性,並且想知道這是怎麼回事。php glob與scandir

<?php 
$paths = glob('../test/*'); 
echo 'count = ' . count($paths) .'<br/>'; 
echo 'paths[0] = ' . $paths[0] .'<br/>'; 
echo 'scandir count = ' . count (scandir ('../test')); 
?> 

test目錄是空的,我得到的結果

count = 1 
paths[0] = 
scandir count = 2 

的2 scandir算我的理解(...計數太)。
但我預計計數爲$paths爲0,而不是1.
爲什麼如果是1,$paths[0]確實沒有價值?

+0

什麼是PHP版本? –

+0

PHP版本5.2.17 – Maestro13

+0

從我看來很奇怪,我無法複製這個問題。 –

回答

3

發生了什麼事是「glob」返回了false。這給你看到的輸出。

count = 1 
paths[0] = 

讀一個報告(http://drupal.org/node/1157100)認爲,如果你不能閱讀水珠會失敗../目錄,即使你可以閱讀../test。我認爲scandir沒有這個限制,所以成功了。

在這種情況下的解決方案:給你自己對../目錄的權限。

+0

確實有效 - 好點! – Maestro13