2

私はphpglob関数の特殊性に遭遇し、一体何が起こっているのか疑問に思います。

<?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

scandir私が理解している2のカウント(.そして..カウントされます)。
しかし、カウントは$paths1ではなく0になると予想していました。
そして、1の場合、なぜ$paths[0]値がないのでしょうか。

4

1 に答える 1

3

何が起こったのかというと、「グロブ」が偽を返したということです。これにより、これまでに見た出力が得られます。

count = 1
paths[0] = 

1つのレポート(http://drupal.org/node/1157100)を読むと、親ディレクトリを読み取れなくても、親ディレクトリをglob()読み取れない場合は失敗する可能性があることがわかります。この制限はないと思いますので、成功します。../../testscandir()

この場合の解決策:../ディレクトリへのアクセス許可も自分に与えます。

于 2012-08-26T11:47:40.300 に答える