2012-08-26 4 views
2

나는 php glob 함수에 특이한 것을 만나고 도대체 무슨 일이 벌어지고 있는지 궁금해.ph glob 대 scandir

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

테스트 디렉토리가 비어 나는 결과로 얻을

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

이해 2의 scandir 카운트 (... 너무 계산됩니다).
하지만 $paths의 수가 1이 아닌 0이 될 것으로 예상했습니다.
왜 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 읽을 수 있지만 의미한다. 나는 스캔들이 이런 제약이 없다고 생각하고 성공한다.

이 경우 해결 방법 : 자신에게 ../ 디렉토리에 대한 사용 권한을 부여하십시오.

+0

그것은 실제로 작동합니다 - 좋은 장소! – Maestro13