2014-02-18 2 views
0
foreach(array_slice(glob('/res/images/*.jpg'), 0, 999) as $filename) 

работа хорошо, ноPHP: предел Еогеасп 999 результатов

foreach(array_slice(glob('/res/images/*.jpg'), 0, 1000) as $filename) 

не работает. Где я могу изменить такой лимит?

+2

Пожалуйста, используйте «не работает». Что происходит? Вы получили сообщение об ошибке? – IMSoP

+0

Не показывать результат. Думает и ничего не происходит. 999 время ответа 2 сек, 1000 не отвечает – TKVideoChat

+0

Возможно, это переполнение памяти (http://stackoverflow.com/a/12772851/1607098)? Как насчет перехода на [DirectoryIterator] (http://php.net/directoryiterator)? – Touki

ответ

3

Попробуйте с простыми (Может быть, тем лучше) способом, как

$i = 0; 
foreach(glob('/res/images/*.jpg') as $filename) { 
    if($i++ <= 1000) { 
     // Do the display 
    } else { 
     break; 
    } 
} 
+0

Для огромного количества возможных файлов я предлагаю 'break' в' else' блоке. –

+0

Спасибо @ PavelŠtěrba Я добавил его сейчас. Фактически я забыл его – Gautam3164

+0

Или немного упростить, положите 'if ($ i ++> 1000) {break; } 'в верхней части функции, сохраняя дополнительный отступ. Однако я подозреваю, что это не решит проблему OP. – IMSoP

0
$i = 0; 
$max = 1000; 
foreach(array_slice(glob('/res/images/*.jpg'), 0, $max) as $filename) { 
    // Some code here 
    if($i++ >= $max) break; 
} 
0

Попробуйте

Кратчайший способ сделать так, как.

$i = 0; 
foreach(array_slice(glob('/res/images/*.jpg'), 0, 1000) as $filename) { 
    // Some code here 
    if($i++ >= 1000) break; 
} 

Надеюсь, это будет полезно.

Смежные вопросы