Выбрать главу

parse_str

Заносит строки URL в переменные.

Синтаксис:

void parse_str(string str [, array arr]);

Функция parse_str() интерпретирует строку str, как если бы эта строка содержала в себе переменные и их значения и передавалась бы в URL. Наша функция устанавливает для этих переменных значения.

Если задан второй необязательный параметр, то значения, найденные при помощи функции parse_str(), сохраняться не в глобальных переменных, а в элементах указанного массива.

$str = "name[]=Vasia&name[]=Pupkin&id=12645&mail=vasia@mail.ru&url=www.vasia.ru";

parse_str($str);

parse_str($str, $arr);

echo $id; // выведет 1264

echo $name[0]; // выведет Vasia

echo $name[1]; // выведет Pupkin

print_r($arr);

выведет

Array( [name] => Array ( [0] => Vasia [1] => Pupkin ) [id] => 12645 [mail] => vasia@mail.ru [url] => www.vasia.ru)

urlencode

Кодирование строки в URL

Синтаксис:

string urlencode (string str)

Возвращает строку, в которой все не алфавитно-цифровые символы (за исключением дефиса "-" и знака подчеркивания "_" и точки ".") заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричные цифры (обозначающие код символа), а символ пробела заменен на знак "+". Именно таким образом кодируются все данные, посылаемые HTML-формами. Медиа-тип этого кодирования обозначается как application/x-www-form-urlencoded; он отличается от стандарта кодирования RFC 1738 (rawurlencode()) тем, что по историческим причинам пробелы заменяются на знак плюс. Эта функция удобна при кодировании строки для использования в строке запроса, являющейся частью URL, и при передаче переменных на следующую страницу:

<?php

echo '<a href="mycgi?foo=', urlencode($userinput), '">';

?>

<?php

$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);

echo '<a href="mycgi?' . htmlentities($query_string) . '">';

?>

urldecode

Декодирование строки из URL

Синтаксис:

string urldecode (string str)

Декодирует в строке последовательности %## (так в URL кодируются спецсимволы).

<?php

$a = explode('&', $QUERY_STRING);

$i = 0;

while ($i < count($a)) {

$b = split('=', $a[$i]);

echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),

' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";

$i++;

}

?>

rawurlencode

Кодирование URL.

Синтаксис:

string RawUrlEncode(string str);

Функция RawUrlEncode() возвращает строку, в которой все не алфавитно-цифровые символы (за исключением дефиса "-", знака подчеркивания "_" и точки ".") заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричные цифры, которые обозначают код символа. Это кодирование нужно для того, чтобы буквенные символы не обрабатывались в качестве разделителей строки URL и не искажались при передаче в сетях.

echo "<A href=ftp://user:".rawurlencode($mypasswd).

"@ftp.my.com/x.txt>"; // передача пароля в гиперссылке

rawurldecode

Производит декодирование URL.

Синтаксис:

string rawurldecode(string str);

Эта функция возвращает строку, в которой последовательности с знаком процента (%) и следующими за ним двумя шестнадцатеричных числа преобразует в символы, соответствующими этому коду. Аналогична urldecode(), но не воспринимает + как пробел.

$str="foo%20bar%40baz";

echo rawurldecode($str);

// выведет foo bar@baz

base64_encode

Кодирует данные в кодировке MIME base64.

Синтаксис:

string base64_encode(string data);

base64_encode() возвращает data закодированные в кодировке base64. Эта кодировка разработана для того, чтобы передавать двоичные данные через транспортные слои, которые не содержат восьмой бит, такие как почтовые тела. Данные в кодировке Base64 занимают примерно на 33% больше места, чем оригинал.

base64_decode

Декодирует данные, закодированные в кодировке MIME base64.

Синтаксис:

string base64_decode(string encoded_data);

base64_decode() декодирует encoded_data и возвращает оригинал данных. Возвращаемые данные могут быть двоичными.

Работа с бинарными данными

pack

Пакетирование данных в двоичную строку.

Синтаксис:

string pack(string format [,mixed $args, ...]);

Функция pack() упаковывает заданные аргументы в бинарную строку, которая затем и возвращается. Формат параметров, а также их количество, задается при помощи строки $format, которая представляет собой набор однобуквенных спецификаторов форматирования - наподобие тех, которые указываются в sprintf(), но только без знака %. После каждого спецификатора может стоять число, которое отмечает, сколько информации будет обработано данным спецификатором. А именно, для форматов a,A,h и H число задает, какое количество символов будет помещено в бинарную строку из тех, что находится в очередном параметре-строке при вызове функции (то есть, определяет размер поля для вывода строки). В случае @ оно определяет абсолютную позицию, в которую будут помещены следующие данные. Для всех остальных спецификаторов следующие за ними числа задают количество аргументов, на которые распространяется действие данного формата. Вместо числа можно указать *, в этом случае подразумевается, что спецификатор действует на все оставшиеся данные.