Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кол-во элементов в массиве ? Как ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: обрабатывается $_FILES
Viper
Отправлено: 25 Сентября, 2008 - 15:48:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




вопрос вот в чем.
есть форма
CODE (text):
скопировать код в буфер обмена
  1. echo '<form action="index.php" enctype="multipart/form-data" method="post">
  2. <label>Разрешенные типы файлов: gif, jpg, png, bmp</label>
  3. <input type="hidden" name="MAX_FILE_SIZE" value="'.$max_post_size.'">
  4. <input type="file" name="userfile[]" class="multi" accept="gif|jpg|png|bmp" />
  5. <input type="submit" value="Upload" />
  6. </form>';


и код для её обработки
CODE (text):
скопировать код в буфер обмена
  1. for ($i=0, $n=3; $i<$n; $i++) {
  2.         if (is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
  3.                 $filename = $_FILES['userfile']['tmp_name'][$i];
  4.                 $ext = substr($_FILES['userfile']['name'][$i], 1 + strrpos($_FILES['userfile']['name'][$i], "."));
  5.                 if (filesize($filename) > $max_post_size) {
  6.                         echo 'Error: File size > '.ini_get('post_max_size');
  7.                 } else {
  8.                         if (move_uploaded_file($filename, $ext_path.$_FILES['userfile']['name'][$i])) {
  9.                                 echo 'File successful uploaded.';
  10.                         } else {
  11.                                 echo 'Error: moving file failed.';
  12.                         }
  13.                 }
  14.         } else {
  15.                 echo 'Error: empty file.';
  16.         }
  17. }


вот структура
Array ( [userfile] =>
Array ( [name] =>
Array ( [0] => hd6.jpg [1] => oggy.gif [2] => patt_487626293adce.jpg [3] => ) [type] =>
Array ( [0] => image/jpeg [1] => image/gif [2] => image/jpeg [3] => ) [tmp_name] =>
Array ( [0] => D:\WWW\tmp\php3BB1.tmp [1] => D:\WWW\tmp\php3BB2.tmp [2] => D:\WWW\tmp\php3BB3.tmp [3] => ) [error] =>
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 4 ) [size] =>
Array ( [0] => 1010056 [1] => 32218 [2] => 6218 [3] => 0 ) ) )

как посчитать кол-во $n ? т.е. чтобы если 1 файл указан , то = 1, если 2 то 2 и т.д.

(Отредактировано автором: 25 Сентября, 2008 - 15:50:20)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Champion Супермодератор
Отправлено: 25 Сентября, 2008 - 15:52:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




количесиво = count(объект)
 
 Top
Viper
Отправлено: 25 Сентября, 2008 - 16:56:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




я так понял нечто вида count($_FILES['userfile']['name']['']); ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
valenok Модератор
Отправлено: 25 Сентября, 2008 - 17:28:31
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




count($_FILES['userfile']['name']['']);

объясните что тут значит каждое слово (блок)
count - ?
$_FILES - ?
['userfile'] - ?
['name'] - ?
[''] - ?


-----
Truly yours, Sasha.
 
My status
 Top
Viper
Отправлено: 25 Сентября, 2008 - 17:36:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




прям клуб знатоков Улыбка
1. считает кол-во элементов массива.
2. собстно сам массив с данными
3. имя формы откуда забирать
4. массив с именами файлов.
5. массив собираемый js в котором хранятся имена файлов из формы с именем userfile.

собстно с помощью
function rcount ($array) {
$count = 0;
if (is_array($array)) {
foreach($array as $id=>$sub) {
if (!is_array($sub)) {
$count++;
} else {
$count = ($count + rcount($sub));
}
}
return $count;
}
return FALSE;
}

с php.net посчитал кол-во элементов. вышло коряво но пашет.
$n = rcount($_FILES['userfile']['name'])-1;
for ($i=0; $i<$n; $i++) {

(Отредактировано автором: 25 Сентября, 2008 - 17:38:49)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
valenok Модератор
Отправлено: 25 Сентября, 2008 - 17:44:53
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




К сожалению я не имею понятия как словесно донести мысль, но попрбуйте понять сами:

count($_FILES['userfile']['name']);


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB