Функция each () устарела; не могу понять, как перейти на foreach

<?php
ini_set('error_reporting', E_ALL); // error reporting

// save uploaded files
$i = 1;
while (list ($item, $value) = each ($_FILES)){
if(substr($item, 0, 11) == 'imageloader'){
$fileName = $i.'.'.substr($item, 11, 3); // make file name
move_uploaded_file($value['tmp_name'], $fileName); // save file
$i++;
}
}
?>

Мне нужно использовать foreach. Я пытался, но это просто не работает. Может кто-нибудь помочь мне изменить EACH к FOREACH цикл?

2

Решение

+ Изменить while (list ($item, $value) = each ($_FILES)){

в

foreach( $_FILES as $key => $file ) { }

приведенный выше синтаксис действительно старый и не должен использоваться.

Кроме того, вы не получаете расширение должным образом, чтобы использовать расширение

$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
3

Другие решения

это для каждого синтаксисы:

foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement

в вашем случае это будет:

<?php
ini_set('error_reporting', E_ALL); // error reporting

// save uploaded files
$i = 1;
foreach ($_FILES as $item => $value)){
if(substr($item, 0, 11) == 'imageloader'){
$fileName = $i.'.'.substr($item, 11, 3); // make file name
move_uploaded_file($value['tmp_name'], $fileName); // save file
$i++;
}
}
?>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector