Курилка.co.ua
Orphus RSS kurilka.co.ua

Category

Archives

Перевод переменных $_GET в строку

Author wmas wmas | Category Category PHP

Уже достаточно давно использую фишку с переводом переменных, передаваемых через $_GET, в строку. Конечно, не без некоторой дополнительной обработки. Зачем это надо? Ну, это весьма удобно, когда один скрипт одновременно управляется несколькими параметрами. Скажем: сортировка по определенному полю, сортировка по возрастанию/убыванию, категориям, ограничения по цене, страницы и т.п. Если параметры передаются через ссылку, то дабы не прописывать в href все переменные и подставлять значения, можно автоматизировать процесс, изменяя лишь необходимый параметры. Думаю, что понятней станет после небольшого примера и моих кратких комментариев, но это потом, а пока сама функция:

function get2str($key='', $val='') {
  $get = $_GET;
  if ( is_array($key) ) {
    if ( count($key)>0 ) foreach ( $key as $k=>$v ) $get[$k] = $v;
  } else $get[$key] = $val;
  if ( count($get)>0 ) {
    foreach ( $get as $k=>$v ) if ( empty($v) ) unset($get[$k]);
  }
  if ( count($get)>0 ) {
    foreach ( $get as $k=>$v ) $get[$k] = $k.'='.urlencode($v);
    return '?'.implode('&', $get);
  }
}

Как вы видите, я не стал что-то особо мудрить. Функция get2str — подготавливает строку переменных из $_GET, заменяя значения или удаляя указанные переменные. Причем, можно указать название переменной ($key) и её новое значение ($val), а можно прописать соответствующий массив.

Теперь небольшой пример использования функции get2str. Предположим, что некий скрипт scrip.php выводит список записей по страницам (переменная $_GET["page"]) и может их сортировать (переменная $_GET["order"]) по полям: name, price и т.д. Тогда ссылка сортировки по полю name может иметь вид:

<a href="script.php<?php echo get2str("order", "name") ?> ">name</a>

Если переменная $_GET["page"] будет не равна 0 или пустой строке, а, к примеру, 10, то результат будет иметь вид:

<a href="script.php?page=10&order=name">name</a>

И так, всё достаточно удобно, но брезговать обработкой необходимых переменный, перед их использование, не стоит. Спасение утопающего дело рук самого утопающего. Отмечу также, что метод GET ограничен определенным объемом передаваемых данных и тут, стоит позаботиться, на всякий случай, созданием некоего «патча», который мог бы ограничить поле обрабатываемых переменных необходимых для скрипта. На этом всё. Спасибо за внимание.

Publish: Понедельник Ноя 26, 2007

2 Responses for "Перевод переменных $_GET в строку"

feed for comments on this post

  • Комментарий #590 author: writerxp Reply
    publish: Вторник Ноя 27, 2007 at 12:53 дп

    Читал about. Говоришь военку отмучал. А я то думаю, что это меня в твоём блоге притягивает. Эх … Грустно :(

  • Комментарий #589 author: wmas Reply
    publish: Понедельник Дек 3, 2007 at 8:31 пп

    2writerxp воентку в универе мучил, так что не смертельно, хотя одного месяца, так сказать в части (Одесса) хватило :)


Popular links

Copyright © since 2006 Курилка.co.ua,
powered by WordPress