Я на самом деле спрашиваю об этом сам в течение многих лет: это сохранить, чтобы пропустить первое и второе значение массива, извлеченного scandir
?
К настоящему времени яперебор массива scandir
(более или менее), подобный следующему:
for ( $scan = scandir('path/to/dir/'), $i = 0, $c = count( $scan ); $i < $c; ++$i )
{
if ( $scan[ $i ][ 0 ] != '.' )
{
// $scan[ $i ] is file name or dir name
}
}
Это также прекрасно работает, но кажется избыточным, если $scan[ 0 ][ 0 ]
всегда .
и $scan[ 1 ][ 0 ]
всегда ..
.
Так что будет сохранено, чтобы пропустить первое и второе значение следующим образом:
for ( $scan = scandir('path/to/dir/'), $i = 2/* starting with 2 instead of 0 */, $c = count( $scan ); $i < $c; ++$i )
{
// $scan[ $i ] is file name or dir name
}
Когда я var_dump
a scandir
, я всегда получаю и получаютакая структура:
var_dump( scandir('path/to/dir/') );
array(
0 => '.', // is this the case for each
1 => '..', // and every environment
2 => 'filename.ext',
[...]
)
Но я в основном работаю в своей собственной серверной среде и не видел слишком много разных серверных сред.Поэтому могу ли я быть уверен, что в каждой среде (ОС, версии PHP и т. Д.) Я найду структуру, извлеченную с помощью scandir
, которая будет похожа на приведенную выше?