Работа с $_GET

Тема в разделе "PHP", создана пользователем vanderv, 19 апр 2011.

Модераторы: latteo
  1. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Пишу небольшой плагин.
    настройки передаю через GET.
    Пример:
    site.ru?id=1,2,3,4&text=bla и тд
    Вопрос:
    как мне заменить id=1,2,3,4 на id=1,2 при этом не тронув остальные переменные? Ну и потом этот адрес я вставляю в ссылку.
     
  2. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Покажи код собирающий ссылки.
     
  3. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    К примеру можно так:
    PHP:
    $var 'site.ru?id=1,2,3,4&text=bla';

    $var preg_replace('#id=1,2,3,4#iU''id=1,2'$var);

    echo 
    $var // отобразит: site.ru?id=1,2&text=bla
    А вообще все зависит от познаний в PHP и фантазии, способов много.
     
  4. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Вот написал функцию. Теперь чтобы получить правильной запрос, надо передать в эту функцию новый запрос.
    PHP:
    foreach($_GET as $key=>$value){
        
    $queryGet[$key]=$value;
    }
    function 
    deleteQuery($q){                                                                
        global 
    $queryGet;
        
    $temporarilyQueryGet $queryGet;
        unset(
    $temporarilyQueryGet[$q]);
        return 
    $temporarilyQueryGet;
    }
    function 
    initQuery($add){                                                                
        global 
    $queryGet;
        
    $nameQuery explode('=',$add);
        
    $temporarilyQueryGet deleteQuery($nameQuery[0]);
        
    $rtr '?';
        if(
    is_array($temporarilyQueryGet))
            foreach(
    $temporarilyQueryGet as $key=>$value){
                
    $rtr .= $key.'='.$value.'&';
            }
        
    $rtr .= $add;
        return 
    $rtr;
    }
    Пример:
    <a href="initQuery('newQuery=1')">link</a> если в GET есть такая переменная, то она заменится.

    Добавлено через 4 минуты
    пробывал - как-то очень коряво все у меня получалось: появлялись 2 и более запятых.
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Зачем делать так:
    PHP:
    foreach($_GET as $key=>$value){
        
    $queryGet[$key]=$value;
    }
    Когда можно так:
    PHP:
    $queryGet $_GET;
    ?:)
     
  6. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Школа Попова:) Пришло новое поколение кодеров старой школы:D
     
  7. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Можно. Там у меня идут манипуляции - тут я их не публиковал.