За последние 24 часа нас посетили 17723 программиста и 1715 роботов. Сейчас ищут 1714 программистов ...

Передача массивов методом GET

Тема в разделе "PHP для новичков", создана пользователем dslychko, 5 сен 2008.

  1. dslychko

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

    С нами с:
    14 июн 2007
    Сообщения:
    144
    Симпатии:
    0
    Можно ли методом GET передавать массивы ?

    1.php

    Код (Text):
    1. $link="2.php?arr_date=$arr_date";
    2.  
    3. echo '<meta http-equiv="refresh" content="0;URL=http://mysite'.$link.'" />';
    В 2.php передаётся слово - "Array", а не содержимое массива.

    Заранее спасибо.
     
  2. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    самый любимый вариант
    PHP:
    1. <?
    2. $arr=array(1,2,3,4,5);
    3. echo '<meta http-equiv="refresh" content="0;URL=http://mysite/2.php?arr_date='.serialize($arr).'" />';
    4. ?>
    в
    2.php
    PHP:
    1. <?
    2. $arr=(isset($_GET['arr_date']) && !empty($_GET['arr_date']))?$_GET['arr_date']:0;
    3. if ($arr) {
    4.    print_r(unserialize($arr));
    5. }
    6. ?>
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  4. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    <a href="asd.php?name=value1&name=value2&name=value3">Send</a>
    В результате получишь $_GET['name'] = array('value1', 'value2', 'value3');
     
  5. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Получим на выходе
    Код (Text):
    1.  
    2. Array ( [name] => value3 )

    А вот так

    Код (Text):
    1. 1.php?name[]=value1&name[]=value2&name[]=value3
    уже получим

    Код (Text):
    1. Array ( [name] => Array ( [0] => value1 [1] => value2 [2] => value3 ) )
     
  6. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    серилизовать интереснее =)
     
  7. dslychko

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

    С нами с:
    14 июн 2007
    Сообщения:
    144
    Симпатии:
    0
    Mr.M.I.T. согласен.
    Спасибо всем.
     
  8. dslychko

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

    С нами с:
    14 июн 2007
    Сообщения:
    144
    Симпатии:
    0

    А если так
    $arr=array(Коля,Вася,Петя,Миша,Гриша);
    ?
     
  9. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Сериализованный массив в УРЛ создает кашу. Поэтому с ним никакой речи о ЧПУ идти не может.
     
  10. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    максимальная длинна GET'a 256 символов
    serialize - капитально увеличивает объём данных
    если уж передавать GET'ом массив (зачем только не пойму) лучше уж через array['key']=value1&array['key']=value2
    хотя если массив многомерный, то без сериализации конечно не обойтись

    но ключевой вопрос: Зачем? :)
     
  11. Anonymous

    Anonymous Guest

    server dependent
     
  12. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    это вроде макс длина названия пеерменной, если не ошибаюсь...
    а макс длина GET запроса вроде 5-6 кб...
    например в скрипте поиска можно выбрать категории в которых нужно искать
    при этом результаты поиска разбиваются по страницам
    как передать список категорий на другую страницу?
     
  13. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Mr.M.I.T.
    убедил.
    хотя серилизация даже в данном случае - лишние байты
     
  14. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Видимо мой ответ никто так и не увидел.
     
  15. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    я видел =)
    но пока думаю стоит ли переделывать скрипт поиска под него...
     
  16. dslychko

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

    С нами с:
    14 июн 2007
    Сообщения:
    144
    Симпатии:
    0
    Увидел. Спасибо.
    А как лучше читать

    PHP:
    1.     $arr_date = array('text1', 'text2', 'text3', 'text4', 'text5', 'text6');
    2.     echo http_build_query($arr_date, 'date_');
    ?