За последние 24 часа нас посетили 34333 программиста и 1709 роботов. Сейчас ищут 805 программистов ...

как соединить $masiv_ и $num, чтобы получилось $masiv_ $num

Тема в разделе "PHP для новичков", создана пользователем AlexZ, 24 апр 2010.

  1. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    Забыл основы(=
    есть массив $masiv_ = array(....) и есть переменная $num = 1;
    Вопрос: как соединить $massiv и $num, чтобы получилось $massiv_$num = array(....) ?

    Иными словами, чтобы получилось так:
    $массив_ = array(....);
    $номер массива = 1;
    Как сделать, чтобы получилось $массив_1 = array(....)?
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    AlexZ
    А зачем?
    Я могу дать решение, но сдаётся мне, что оно совершенно не нужно из-за ошибок в проектировании.
    Или всё-таки имеется в виду не изменение имени, а добавление ключей?
     
  3. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    нет не ключей-именно имя нужно поменять.
    прикол в том, что мне придется использовать 3 одинаковых функции. разниуа только в 1 цифре( разными будут только имена массива), - конечно можно написать и три функции, но зачем, если можно обойтись одной?
     
  4. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    приведу пример -
    $num = 1; upload_picture($name1, $num)
    $num = 2; upload_picture($name2, $num)
    $num = 3; upload_picture($name3, $num)
    $num = 4; upload_picture($name4, $num)

    и собственно пример из кода

    $report_upload_$num = array("Текст");
     
  5. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Короче всё понятно: попытка решить задачу таким способом, которым её решать ни в коем случае не нужно.
    A вот саму задачу я так и не понял, но то, что решение абсолютно неприемлимое, — видно с первого взгляда.
     
  6. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    А ВООБЩЕ РЕАЛЬНО ЭТО ИЛИ НЕТ - ВСЕ ТАКИ ВЛОМ ПИСАТЬ НЕСКОЛЬКО ОДИНАКОВЫХ ФУНКЦИЙ...

    А ЗАДАЧА ... ПРИМЕР :
    $num = 1; upload_picture($name1, $num);

    FUNCTION upload_picture($name1, $num)
    {
    ......
    $report_upload_$num = array("БЛАБЛАБЛА");
    //Т.Е. ЧТОБЫ ПОЛУЧИЛОСЬ $report_upload_1 = array("БЛАБЛАБЛА");
    }

    ЭТО РЕАЛЬНО СДЕЛАТЬ ИЛИ НЕТ ?

    И ПОЧЕМУ "попытка решить задачу таким способом, которым её решать ни в коем случае не нужно" - ПОЯСНИТЕ.
     
  7. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Да потому что возможность что-то сделать каким-либо способом никак не означает, что нужно таким способом это делать.
    Когда вы идёте в магазин, то не едете же сначала в Африку, минуете амазонки и на вертолёте через несколько городов Европы попадаете в магазин, если для этого достаточно перейти дорогу?
    Нет, вы выходите из подъезда, переходите через дорогу и попадаете в магазин.
    Мы поступим именно так, потому что это разумней.

    Из этого я делаю вывод, что вы абсолютно не знаете, что представляет из себя функция.
    Смотрим:

    PHP:
    1. <?php
    2.  
    3. function Multiply($x, $y) {
    4.     return $x * $y;
    5. }
    6.  
    7. echo Multiply(2, 2);
    8. echo Multiply(3, 6);
    9.  
    10. $first = 4;
    11. $second = 6;
    12.  
    13. echo Multiply($first, $second);
    14.  
    15. ?>
    Я же не создаю чёрт знает сколько функций, я использую одну единственную.
     
  8. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    совсем не понял... как подставлять переменные в функцию я и так знал...
    в приведенном коде вы указали как можно подставить переменные, но мне надо, чтобы менялось имя создаваемого массива ( потому как в конце все должны получиться 3 массива данных, как то $report_upload_1; $report_upload_2; $report_upload_3;
    Конечно же если бы задача ставилась тупо забить данные в один массив, или просто выводить его в конце функции на экран, было бы просто и "в африку не зачем было бы ехать", но тут немного по-другому...

    и если я не прав, как тогда сделать, то что требуется, т.е.:

    $num = 1; upload_picture($name1, $num);
    $num = 2; upload_picture($name2, $num);
    FUNCTION upload_picture1($name1, $num)
    {
    ......
    $report_upload_1 = array("БЛАБЛАБЛА1");
    }

    FUNCTION upload_picture2($name2, $num)
    {
    ......
    $report_upload_2 = array("БЛАБЛАБЛА2");
    }

    и в конце нужно получить массивы с заданными именами $report_upload_1;$report_upload_2;$report_upload_3 ?
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. $report_upload = array();
    4.  
    5. /**
    6.  * Создадим функцию с возможностью передачи
    7.  * по ссылке
    8.  */
    9. function upload_picture(&$report, $num) {
    10.     $report[] = array("Бла-бла-бла");
    11. }
    12.  
    13. /**
    14.  * Какая-нибудь хрень
    15.  */
    16. upload_picture($report_upload, 1);
    17. upload_picture($report_upload, 2);
    18. upload_picture($report_upload, 3);
    19. upload_picture($report_upload, 4);
    20.  
    21. /**
    22.  * Результатом будет внесение изменений в исходный
    23.  * массив
    24.  */
    25. echo "<pre>" . print_r($report_upload, true) . "</pre>";
    26.  
    27. ?>
     
  10. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    Переделал под свой код. Спасибо за помощь.

    Получилось лучше, чем хотел.
    как всегда не хватало знаний ( к примеру впервые увидел upload_picture(&$report, $num и вообще).
    Вывод
    Учиться и еще раз учиться, как говорил товарищ Ленин ) ...

    И все таки последний вопрос (так сказать для общего развития - когда -нибудь все равно пригодится)
    как соединить $massiv и $num, чтобы получилось $massiv_$num?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    AlexZ
    а чем не угодили массивы массивов? =)

    и тем более, если ты знашеь, что их будет три, ну и назови их заранее...

    Расскажи подробнее и конкретнее. Тут никто не похитит твои важные мегаидеи =) не боись.
     
  12. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    да я и не боюсь( я вообще считаю, что если код интересный его нужно показывать общественности).

    к примеру общий мой код таков

    PHP:
    1.  
    2. <?php
    3. function upload_picture(&$report_upload2, $num, $folder, $info, $name, $tmpname, $typename, $ip, $pc)
    4. {
    5. other_connect();
    6.   $sql = "SELECT * FROM `gallery` WHERE `folder` = '$folder'";
    7.   $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
    8.  if (mysql_num_rows($result) > 0) {$i=mysql_num_rows($result) + 1;} else {$i=1;}
    9.  if ($typename == 'image/jpg'){$typename = 'jpg';}
    10.  if ($typename == 'image/jpeg'){$typename = 'jpeg';}
    11.  if ($typename == 'image/png'){$typename = 'png';}
    12.  if ($typename == 'image/gif'){$typename = 'gif';}
    13.  $name = $i.'.'.$typename;
    14.  $original = $i.'original_.'.$typename;
    15.  $small = $i.'small_.'.$typename;
    16.  $nobig = $i.'nobig_.'.$typename;
    17.  $big = $i.'big_.'.$typename;
    18.  $see_name = "./gallery/$folder";
    19.  $see_pic = "./gallery/$folder/$name";
    20.  $see_pic_small = "./gallery/$folder/$small";
    21.  $see_pic_nobig = "./gallery/$folder/$nobig";
    22.  $see_pic_big = "./gallery/$folder/$big";
    23.   echo "<br>".$name."<br>", $original."<br>", $small."<br>", $nobig."<br>", $see_pic."<br>", $see_name;
    24.   $report_upload = array("Отчет о загрузки изображений");
    25. if (!is_dir("$see_name")){if (mkdir("$see_name")){array_push($report_upload, "Создан каталог ".$folder);} else {array_push($report_upload, "Невозможно создание каталога ".$folder);}}
    26. if (copy($tmpname, $see_pic)) {array_push($report_upload, "Загружено изображение ".$name0);} else {array_push($report_upload, "Ошибка загрузки изображения ".$name);}
    27. if (img_resize($see_pic, $see_pic_small, 90, 90)) {array_push($report_upload, "Завершено создание 90*90 изображения ".$name);} else {array_push($report_upload, "Ошибка создания 90*90 изображения ".$name0);}
    28. if (img_resize($see_pic, $see_pic_nobig, 750, 700)) {array_push($report_upload, "Завершено создание 350*300 изображения ".$name);} else {array_push($report_upload, "Ошибка создания 750*700 изображения ".$name);}
    29. if (img_resize($see_pic, $see_pic_big, 1024, 1000)) {array_push($report_upload, "Завершено создание 1024*1000 изображения ".$name);} else {array_push($report_upload, "Ошибка создания 1024*1000 изображения ".$name);}
    30.  $sql1 = "INSERT INTO `gallery` (`id`, `folder`, `original`, `big`, `nobig`, `small`, `info`, `ip`, `pc`) VALUES ('', '$folder', '$original', '$big', '$nobig', '$small', '$info', '$ip', '$pc')";
    31.  $result1 = mysql_query($sql1) or die(mysql_error() ."<br/>". $sql1);
    32. if ($result1){array_push($report_upload, "Изображение ".$name."сохранено в базе данных");} else {array_push($report_upload, "Изображение ".$name." сохранено в базе данных");}
    33. //$report_upload;
    34. $report_upload2[] = $report_upload;
    35. }
    36. ?>
    37.  

    PHP:
    1.  
    2. <?php
    3. if ($info0 != '')
    4. {upload_picture($show_report_upload, $num, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    5. if ($info1 != '')
    6. {upload_picture($show_report_upload, $num, $folder, $info1, $name1, $tmpname1, $typename1, $ip, $pc);}
    7. ?>
    8.  
    У народа конечно же есть и лучше скрипты, но я только учусь, а вся наша жизнь есть сплошное учение и нравоучение)) ..
    Часть конечно же вырезал (ни к чему она здесь).

    P/s/ коментарии по коду конечно же приветствуются...
     
  13. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    AlexZ
    так
    ${"array_".$num};
    вы самостоятельно обучаетесь?
     
  14. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    угу. не все смог найти(..
    ${"array_".$num}; - а это в какой строке? - хех понял) спасибо
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в каждую строку не вчитывался. но не вижу тут ситуации, когда надо то, что вы описали в первом посте.
    Многомерные массивы знаете что такое?
    Например:
    $pic[1]['file']='mypornphoto.jpg';
    $pic[1]['img_id']='1682';
    $pic[1]['author_id']='27';
    $pic[1]['comment']='мокрые киски только на ввв.мокракиска.ру';

    $pic[2]['file']='CAT.jpg';
    $pic[2]['img_id']='1683';
    $pic[2]['author_id']='14';
    $pic[2]['comment']='мокрые киски после душа';

    И никакой нужды в склейке массвов из переменных. Вместо 1 или 2 можете саму эту переменную и подставлять и жить счастливо. =) Круто, да?!
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    PHP:
    1. <?php
    2.  if ($info0 != '')
    3.  {upload_picture($show_report_upload, $num, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    4.  if ($info1 != '')
    5.  {upload_picture($show_report_upload, $num, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    6.  ?>
    Легким движением руки элегантные брюки превращаются, превращаются... В удобные шорты.

    PHP:
    1. <?php
    2.  if ($info0 != '' OR $info1 != '')
    3.  {upload_picture($show_report_upload, $num, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    4.  ?>
     
  17. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    лучше бы не пригождалось. потом будете искать, где заполняется массив report_1, а найти не просто. поиск по тексту скрипта не даст результатов и надо будет вспоминать, как всё делалось вначале.
     
  18. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0

    я же не весь код привел- не 2 условия, больше, и переменные входят разные в функцию (сейчас заметил, что вначале немного неправильно написал- исправил


    код таков
    PHP:
    1.  <?php
    2.       if ($info0 != '')
    3.       {upload_picture($show_report_upload, $num, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    4.       if ($info1 != '')
    5.       {upload_picture($show_report_upload, $num1, $folder, $info1, $name1, $tmpname1, $typename1, $ip, $pc);}
    6.       ?>
    а про многомерные массивы да - оптимальное решение, лучше чем я хотел (только раньше ими не приходилось пользоваться)...

    Отсюда все начинается:
    PHP:
    1. $report_upload = array("Отчет о загрузки изображений");
    только было бы:
    PHP:
    1. $report_upload_1 = array("Отчет о загрузки изображений");
    ну и дальше заполнение уже массива $report_upload_1
     
  19. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    кстати да. Про это как то и не подумал. Сегодня вечером переделаю код. Спасибо.
     
  20. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. function upload_picture($num, $folder, $info, $name, $tmpname, $typename, $ip, $pc)
    4. {
    5. other_connect();
    6.   $sql = "SELECT * FROM `gallery` WHERE `folder` = '$folder'";
    7.   $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
    8.  if (mysql_num_rows($result) > 0) {$i=mysql_num_rows($result) + 1;} else {$i=1;}
    9.  if ($typename == 'image/jpg'){$typename = 'jpg';}
    10.  if ($typename == 'image/jpeg'){$typename = 'jpeg';}
    11.  if ($typename == 'image/png'){$typename = 'png';}
    12.  if ($typename == 'image/gif'){$typename = 'gif';}
    13.  $name = $i.'.'.$typename;
    14.  $original = $i.'original_.'.$typename;
    15.  $small = $i.'small_.'.$typename;
    16.  $nobig = $i.'nobig_.'.$typename;
    17.  $big = $i.'big_.'.$typename;
    18.  $see_name = "./gallery/$folder";
    19.  $see_pic = "./gallery/$folder/$name";
    20.  $see_pic_small = "./gallery/$folder/$small";
    21.  $see_pic_nobig = "./gallery/$folder/$nobig";
    22.  $see_pic_big = "./gallery/$folder/$big";
    23.   echo "<br>".$name."<br>", $original."<br>", $small."<br>", $nobig."<br>", $see_pic."<br>", $see_name;
    24.   $report_upload["$num"]['1'] = "Отчет о загрузки изображений";
    25.   echo "<pre>" . print_r($report_upload["$num"]['2'], true) . "</pre>";
    26.  
    27. if (!is_dir("$see_name")){if (mkdir("$see_name")){$report_upload["$num"]['3'] = "Создан каталог ".$folder;} else {$report_upload["$num"]['3'] = "Невозможно создание каталога ".$folder;}}
    28. if (copy($tmpname, $see_pic)) {$report_upload["$num"]['4'] = "Загружено изображение ".$name0;} else {$report_upload[$num]['4'] = "Ошибка загрузки изображения ".$name;}
    29. if (img_resize($see_pic, $see_pic_small, 90, 90)) {$report_upload["$num"]['5'] = "Завершено создание 90*90 изображения ".$name;} else {$report_upload["$num"]['5'] = "Ошибка создания 90*90 изображения ".$name0;}
    30. if (img_resize($see_pic, $see_pic_nobig, 750, 700)) {$report_upload["$num"]['6']  = "Завершено создание 350*300 изображения ".$name;} else {$report_upload["$num"]['6'] = "Ошибка создания 750*700 изображения ".$name;}
    31. if (img_resize($see_pic, $see_pic_big, 1024, 1000)) {$report_upload["$num"]['7'] = "Завершено создание 1024*1000 изображения ".$name;} else {$report_upload["$num"]['7'] = "Ошибка создания 1024*1000 изображения ".$name;}
    32.  $sql1 = "INSERT INTO `gallery` (`id`, `folder`, `original`, `big`, `nobig`, `small`, `info`, `ip`, `pc`, `status`) VALUES ('', '$folder', '$original', '$big', '$nobig', '$small', '$info', '$ip', '$pc', 'hide')";
    33.  $result1 = mysql_query($sql1) or die(mysql_error() ."<br/>". $sql1);
    34. if ($result1){$report_upload["$num"]['8'] = "Изображение ".$name."сохранено в базе данных";} else {$report_upload["$num"]['8'] = "Изображение ".$name." сохранено в базе данных";}
    35. //$report_upload;
    36.  
    37. }?>
    PHP:
    1.  
    2. <?php
    3. if ($info0 != '')
    4. {upload_picture(1, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    5. if ($info1 != '')
    6. {upload_picture(2, $folder, $info1, $name1, $tmpname1, $typename1, $ip, $pc);}
    7. ?>
    8.  
    все исправил, но теперь появился вопрос - а как вывести массив $report_upload?
    т.е. нужно вывести во втором скрипте после
    PHP:
    1.  
    2. <?php
    3.  if ($info1 != '')
    4. {upload_picture(2, $folder, $info1, $name1, $tmpname1, $typename1, $ip, $pc);}?>
    5.  
    теперь если прописываю echo "<pre>" . print_r($report_upload, true) . "</pre>"; как это делал раньше (в конце второго скрипта, общий массив не выводится, а если прописать на вывод в конце функции upload_picture (1 скрипт), то это не подойдет, т.к. выводится данные в несколько массивов.
    Т.е. в итоге я имею

    Код (Text):
    1.  
    2. Array
    3. (
    4.     [1] => Array
    5.         (
    6.             [1] => Отчет о загрузки изображений
    7.             [4] => Загружено изображение
    8.             [5] => Завершено создание 90*90 изображения 25.jpeg
    9.             [6] => Завершено создание 350*300 изображения 25.jpeg
    10.             [7] => Завершено создание 1024*1000 изображения 25.jpeg
    11.             [8] => Изображение 25.jpegсохранено в базе данных
    12.         )
    13.  
    14. )
    15.  
    16. Array
    17. (
    18.     [2] => Array
    19.         (
    20.             [1] => Отчет о загрузки изображений
    21.             [4] => Загружено изображение
    22.             [5] => Завершено создание 90*90 изображения 26.jpeg
    23.             [6] => Завершено создание 350*300 изображения 26.jpeg
    24.             [7] => Завершено создание 1024*1000 изображения 26.jpeg
    25.             [8] => Изображение 26.jpegсохранено в базе данных
    26.         )
    27.  
    28. )
    а хотелось бы

    Код (Text):
    1. Array
    2. (
    3.     [1] => Array
    4.         (
    5.             [1] => Отчет о загрузки изображений
    6.             [4] => Загружено изображение
    7.             [5] => Завершено создание 90*90 изображения 25.jpeg
    8.             [6] => Завершено создание 350*300 изображения 25.jpeg
    9.             [7] => Завершено создание 1024*1000 изображения 25.jpeg
    10.             [8] => Изображение 25.jpegсохранено в базе данных
    11.         )
    12.     [2] => Array
    13.         (
    14.             [1] => Отчет о загрузки изображений
    15.             [4] => Загружено изображение
    16.             [5] => Завершено создание 90*90 изображения 26.jpeg
    17.             [6] => Завершено создание 350*300 изображения 26.jpeg
    18.             [7] => Завершено создание 1024*1000 изображения 26.jpeg
    19.             [8] => Изображение 26.jpegсохранено в базе данных
    20.         )
    21.  
    22. )
    Как это можно сделать?
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    foraech вложенный в foreach (и так далее) может пройти по массиву глубоко и хорошо. выглядит примерно так (если это уже знаете - прошу не обижаться, слишком много буков чтобы читать в четыре утра):

    foreach (array_expression as $key => $value) {
    значит $key это будет [1], а $value будет весь массив
    [1] => Array
    (
    [1] => Отчет о загрузки изображений
    [4] => Загружено изображение
    [5] => Завершено создание 90*90 изображения 25.jpeg
    [6] => Завершено создание 350*300 изображения 25.jpeg
    [7] => Завершено создание 1024*1000 изображения 25.jpeg
    [8] => Изображение 25.jpegсохранено в базе данных
    )

    соответственно, на втором заходе будет весь массив [2]

    И тут же на этот массив снова натравить foreach (array_expression as $key => $value) {
    и получите key = 1, value = Отчет о загрузки изображений


    Это целиком и полностью на форич.

    Но в вашем случае не обязательно, ибо известно заранее все про эти массивы, и если вы точно знаете что будет с 1 по 8 там членов, но можно обойтись одним форич.

    foreach (array_expression as $key => $value) {
    значит $key это будет [1], а обращаться сразу к $value[1], $value[2] и т.п.

    PS: дайте им имена, а то цифр столько, что голова кругом пойдет, когда будете отлаживать.
    [1] => Array
    (
    ['report'] => Отчет о загрузки изображений
    ['action'] => Загружено изображение
    ['90x90'] => true (false или имя превьюшки, id - уж как вам больше нраааца)
    ...
    ['done'] => true\false\или ID из бд
    )


    и отчет полный о процессах проведенных сможете построить легко и строку для БД.


    но вобще я бы советовал делать ВСЁ несколько иначе. Опыта у меня не много, но свой взгляд на эти вещи имею. Если подробно изложите изначальную задачу, не упоминая кода и т.п. - тоесть ТЕХЗАДАНИЕ - поделюсь мыслями.
     
  22. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    Здравствуйте. Извиняюсь, что долго молчал, - ездил к друзьям в другой город, а там некогда было.

    По поводу тех. задания :
    Необходим загрузчик изображений, с описанием к ним и отчетом загрузки. А также с автоматическим масштабированием изображений при загрузки на 3 формата 90*90, 350*300, 1024*1000.
    Пошагово это выглядит так:
    1) Пользователь заходит на страницу с формой - форма содержит поля каталог, изображение (тип файл) и поле описание. Ну и субмит разумеется. Под формой находится спец. поле для вывода отчета.

    2) поля могут динамически добавляться и удаляться по желанию пользователя.(кроме поля каталог)
    3) данные из формы передаются на страницу обработки.

    5)проверка существования каталога в папке image - если существует, то пропускаем, если нет - добавляем(согласно имени которое юзер ввел в поле каталог).

    6) остальные данные прогоняются через несколько функций, в частности, - проверка на соответствие расширение картинок, размер файла не больше 4 мб, далее создаем 4 изображения в папке с картинками (в каталоге),-
    1 изображение - первоначально загруженное пользователем изображение, остальные 3 - создаются по заданным параметрам.

    7) каждое действие (положительное или отрицательное) записывается в массив.

    8) массив передается по ссылке обратно на страницу с формой и выводится в спец. поле.

    И напоследок, то чего я пока еще не сделал(ну помимо отчета)) ) - необходимо сделать так, чтобы картинки масштабировались по ширине, но не были больше определенных размеров по длине или наоборот


    P/s/ forаech сейчас посмотрю, позже отвечу.
     
  23. AlexZ

    AlexZ Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    64
    Симпатии:
    0
    не могу разобраться
    как
    PHP:
    1. foreach (array_expression as $key => $value) {
    2. значит $key это будет [1], а обращаться сразу к $value[1], $value[2] и т.п.
    3.  
    4. PS: дайте им имена, а то цифр столько, что голова кругом пойдет, когда будете отлаживать.
    5. [1] => Array
    6. (
    7. ['report'] => Отчет о загрузки изображений
    8. ['action'] => Загружено изображение
    9. ['90x90'] => true (false или имя превьюшки, id - уж как вам больше нраааца)
    10. ...
    11. ['done'] => true\false\или ID из бд
    12. )
    приспособить к этому:

    PHP:
    1. 1.  <?php
    2.    2.  if ($info0 != '')
    3.    3.  {upload_picture(1, $folder, $info0, $name0, $tmpname0, $typename0, $ip, $pc);}
    4.    4.  if ($info1 != '')
    5.    5.  {upload_picture(2, $folder, $info1, $name1, $tmpname1, $typename1, $ip, $pc);}
    6.    6.  ?>
    7.  
    И вопрос еще возник, а данный пример будет рабоать быстрее, чем
    PHP:
    1. function upload_picture(&$report_upload2, $num, $folder, $info, $name, $tmpname, $typename, $ip, $pc)
    или нет? Если нет, то смысл использовать?