Учебник PHP. Функции работы с URL
|
parse_url() parse_str() |
rawurlencode() rawurldecode() |
base64_encode() base64_decode() |
parse_url()
Функция обрабатывает URL и возвращает его компоненты.
Синтаксис:
array parse_url(string url)
Эта функция возвращает ассоциативный массив, включающий множество различных существующих компонентов URL: "scheme", "host", "port", "user", "pass", "path", "query" и "fragment".
И если мы напишем вот такой скриптик
Пример:
<? $url = "http://www.google.com.ru/search?hl=ru&ie=
UTF-8&oe=UTF-8&q=softtime&lr="; $arr = parse_url($url); print_r($arr); ?>
то получим следующий результат:
| http://localhost/PHP/test1.php | |
Array ( [scheme] => http [host] => www.google.com.ru [path] => /search [query] => hl=ru&ie= |
|
parse_str()
Заносит компоненты URL в переменные.
Синтаксис:
void parse_str(string str [, array arr])
Функция parse_str() интерпретирует строку str так, как если бы эта строка содержала в себе переменные и их значения и передавалась бы в URL. Т.е. функция устанавливает для этих переменных значения. Если задан второй необязательный параметр arr, то значения, найденные при помощи функции parse_str(), сохраняться не в глобальных переменных, а в элементах указанного массива. Пример приводить не буду, вроде все понятно.
rawurlencode()
Функция кодирования URL.
Синтаксис:
string rawurlencode(string str)
Функция rawurlencode возвращает строку, в которой все не алфавитно-цифровые символы, за исключением дефиса "-", знака подчеркивания "_" и точки ".", заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричные цифры, обозначающие код символа. Кодирование нужно для того, чтобы буквенные символы не обрабатывались как разделители URL-строки и не искажались при передаче в сетях.
rawurldecode()
Производит декодирование URL.
Синтаксис:
string rawurldecode(string str)
Думаю, что с этой функцией все понятно, добавлю лишь, что она аналогична функции urldecode(), но не воспринимает "+" как пробел.
Давайте для примера на эти две функции что-нибудь закодируем и раскодируем.
<? $url = "http://www.google.com.ru/search?hl=ru&ie=
UTF-8&oe=UTF-8&q=софттайм&lr="; echo("исходная строка: $url");echo("<br>"); echo("закодировали:");echo("<br>"); $url_code = rawurlencode($url); echo($url_code);echo("<br>"); echo("и раскодировали:");echo("<br>"); $url_decode = rawurldecode($url_code); echo($url_decode); ?>
И вот что получилось:
| http://localhost/PHP/test1.php | |
исходная строка: http://www.google.com.ru/search?hl=ru&ie= |
|
base64_encode()
Функция кодирует данные в кодировке MIME base64.
Синтаксис:
string base64_encode(string data)
Функция base64_encode() возвращает строку, переданную в параметре data в кодировке MIME base64.
Кодировка MIME base64 разработана для передачи двоичных данных через транспортные слои, которые не содержат восьмой бит, к примеру, как почтовые тела. Заметим, что данные в кодировке Base64 занимают примерно на 30% больше места, чем оригинал.
base64_decode()
Декодирует данные, закодированные в кодировке MIME base64.
Синтаксис:
string base64_decode(string encoded_data)
Функция base64_decode() декодирует encoded_data и возвращает оригинал данных. Пример приводить не буду – все просто, и, поверьте, работает.