[Image] Пятница, 29.03.2024, 09:04 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
Логин:
Пароль:
 Блог
Главная » 2011 » Январь » 13 » Кодирование и декодирование данных для URL
14:30
Кодирование и декодирование данных для URL

Часто при пересылке данных формы или в GET-запросе к серверу (то есть, в части URL) необходимо преобразовать символы, имеющие специальное значение в HTTP-запросе (не-алфавитно-цифровые символы), в допустимый формат. В HTTP-запросах таким форматом является шестнадцатеричный ASCII-код символа, имеющий префикс %. Исключение составляет символ пробела, представляемый знаком +. Предположим, что нужно передать переменную myvar, имеющую значение / value, в другой PHP-сценарий. Приведенный ниже код, используемый для этой цели, работать не будет:
http://myserver.com/myscript.php?myvar=/ value
Для правильной передачи значения myvar потребуется преобразовать его в кодированное представление строки. Поскольку шестнадцатеричным значением символа / является 0x2F, а пробел представляется знаком +, правильный URL-адрес будет иметь вид:
http://myserver.com/myscript.php?myvar=%2F+value
Поскольку преобразовывать вручную каждый не-алфавитно-цифровой символ —весьма утомительное занятие, в РНР имеется функция urlencode (), которая преобразовывает все не-алфавитно-цифровые (за исключением символов -,. и ., не имеющих смысла в протоколе HTTP) в кодированную форму. Синтаксис этой функции имеет вид: urlencode($string) где $string — это строка для кодирования. Функция возвращает значение строки в закодированном виде. Функция rawurlencode () подобна urlencode О , но она не преобразует символ пробела в +. Вместо этого она преобразует пробел в шестнадцатеричное значение 0x20 (%20). Когда РНР передает параметры, принятые от HTTP-запроса (независимо от типа запроса — GET, POST или cookie-набор), он автоматически декодирует их в исходные значения. Однако для случаев, когда нужно вручную декодировать эти значения, в РНР предназначена функция urldecode (), имеющая следующий синтаксис: urldecode($enc_string) где $enc_string — это закодированная строка для декодирования. Эта функция возвращает декодированную строку. Как и в случае с urlencode (), существует функция rawurldecode О , предназначенная для шестнадцатеричного представления пробела.


Категория: Все о PHP | Просмотров: 2605 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [589]
Создание сайтов [355]
Заработать в интернете [505]
Технологии [44]
Полезное [366]
Услуги и сервисы [308]
Автоблог [100]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 2
Гостей: 2
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru