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
Форумы портала PHP.SU :: Версия для печати :: Экспорт значений переменной из цикла
Форумы портала PHP.SU » » Вопросы новичков » Экспорт значений переменной из цикла

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

1. alexpebody - 06 Июня, 2016 - 10:08:41 - перейти к сообщению
Доброго времени.

PHP:
скопировать код в буфер обмена
  1. for($i=0;$i<count($_FILES['xtt']['name']);$i++)
  2. {
  3. $uploaddir = 'files/';
  4. $rstring = RString();
  5.  
  6. $uploadfile = str_replace(array(' ', '_', '+', '-', '—'), '', translitIt(trim(strtolower($uploaddir.basename($rstring.$_FILES['xtt']['name'][$i])))));


Если не вдаваться в подробности, скрипт выше, делает рандомные имена файлов, по условиям, из массива введенных пользователем из <input type "file" multipart name="xtt[]"> Соответственно из этого цикла получаем все файлы из массива $_FILES; Предположим, пользователь загрузил 3 файла, в итоге имеем 3 имени например значение переменной в цикле $uploadfile:

files/qstgmzboximg3.png
files/ywvoc7boximg2.png
files/t81u4mboximg.png

Пожалуйста подскажите, как можно получить все эти значения переменой $uploadfile, за пределами этого цикла?

Пробовал использовать $GLOBALS, не помогает, получаю только последнее значение. На текущий момент нашел решение использовать внешний текстовый файл, в который цикл пишет все значение переменной $uploadfile, но это очень неудобно, т.к. файл формируется не мгновенно, отсюда проблемы.

ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО! Извиняюсь если где то затупил. Не понял
2. Viper - 06 Июня, 2016 - 12:11:22 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $uploadfile = str_replace(array(' ', '_', '+', '-', '—'), '', translitIt(trim(strtolower($uploaddir.basename($rstring.$_FILES['xtt']['name'][$i])))));
никогда не пишите в одну строку несколько функций, это признак быдлокода, а как минимум неуважения к самому себе.

alexpebody пишет:
Пожалуйста подскажите, как можно получить все эти значения переменой $uploadfile, за пределами этого цикла?
массив для кого изобрели? Внутри цикла в массив добавили, за циклом получили из массива.
3. alexpebody - 06 Июня, 2016 - 12:16:34 - перейти к сообщению
Viper пишет:
никогда не пишите в одну строку несколько функций, это признак быдлокода, а как минимум неуважения к самому себе.

Учту, спасибо.
Viper пишет:
массив для кого изобрели? Внутри цикла в массив добавили, за циклом получили из массива.

Или я тупой, или не понимаю как это сделать, пробовал в массив, пробовал в куки, пробовал в сессию, все одно = получаю только последний элемент: $uploadfile

Можете подсказать? Пробовал самое простое: $uploadfile = array($uploadfile);

Как бы ни пробовал, получаю только последнее значение: Array ( [0] => files/4lanq7boximg.png ) уже голова болит, с утра мучаю, где то что то мелочь не понимаю.

---

ОМГ )))))))) вроде нашел решение, Госпади, все же много проще... $array[] = $uploadfile;

з.ы. Вот у меня всегда так, как в чем то сложном, более менее сразу нахожу решение, а в простом могу затупить на пол дня. ИМХО бред. Еще раз СПАСИБО!
4. Viper - 06 Июня, 2016 - 13:07:22 - перейти к сообщению
alexpebody пишет:
ОМГ )))))))) вроде нашел решение, Госпади, все же много проще... $array[] = $uploadfile;
Улыбка

PHP:
скопировать код в буфер обмена
  1. $array = array();
  2.  
  3. for/foreach (expression) {
  4.         ...
  5.         $array[] = 'some_value';
  6.         ...
  7. }
5. alexpebody - 06 Июня, 2016 - 13:28:48 - перейти к сообщению
Именно так и сделал )) спасибо большое!

 

Powered by ExBB FM 1.0 RC1