KnigaRead.com/

White cat - Справочник по PHP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн white cat, "Справочник по PHP" бесплатно, без регистрации.
Перейти на страницу:

Теперь поговорим о параметре locale. Как известно, каждая локаль, установленная в системе, имеет свое уникальное имя, по которому к ней можно обратиться. Именно оно и фиксируется в этом параметре. Однако, есть два важных исключения из этого правила. Во-первых, если величина locale равна пустой строке "", то устанавливается та локаль, которая указана в глобальной переменной окружения с именем, совпадающем с именем категории category (или LANG - она практически всегда присутствует в Unix). Во-вторых, если в этом параметре передается 0, то новая локаль не устанавливается, а просто возвращается имя текущей локали для указанного режима.

setlocale("LC_CTYPE","ru_SU.KOI*-R");

// Здесь вызов устанавливает таблицу замены

// регистра букв в соответствии с кодировкой KOI8-R.


Преобразование кодировок


convert_cyr_string


Преобразует строку из одной кодировки кириллицы в другую.

Синтаксис:

string convert_cyr_string(string str, string from, string to);

Функция переводит строку str из кодировки from в кодировку to. Конечно, это имеет смысл только для строк, содержащих "русские" буквы, т.к. латиница во всех кодировках выглядит одинаково. Разумеется, кодировка from должна совпадать с истинной кодировкой строки, иначе результат получится неверным. Значения from и to - одиночный символ, определяющий кодировку:

Функция работает достаточно быстро, так что ее вполне можно применять для перекодировки писем в нужную форму перед их отправкой по электронной почте.


bin2hex


Производит преобразование символьных данных в шестнадцатеричный вид.

Синтаксис:

string bin2hex(string str)

Функция bin2hex() возвращает строковое шестнадцатеричное представление символьно-байтовых данных, содержащихся в строке str.

Конвертация производиться побайтово, старший полубайт указывается первым.

Функции URL


parse_url


Обрабатывает URL и возвращает его компоненты.

Синтаксис:

array parse_url(string url);

Эта функция возвращает ассоциативный массив, включающий множество различных существующих компонентов URL. Они включают "scheme", "host", "port", "user", "pass", "path", "query" и "fragment".


parse_str


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

Синтаксис:

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

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

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

$str = "name[]=Vasia&name[]=Pupkin&id=12645& [email protected]&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] => [email protected] [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 [email protected]



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 число задает, какое количество символов будет помещено в бинарную строку из тех, что находится в очередном параметре-строке при вызове функции (то есть, определяет размер поля для вывода строки). В случае @ оно определяет абсолютную позицию, в которую будут помещены следующие данные. Для всех остальных спецификаторов следующие за ними числа задают количество аргументов, на которые распространяется действие данного формата. Вместо числа можно указать *, в этом случае подразумевается, что спецификатор действует на все оставшиеся данные.

Вот полный список спецификаторов формата:

// Целое, целое, все остальное - сиволы

$bindata = pack("nvc*", 0x1234, 0x5678, 65, 66);


После выполнения приведенного кода в строке $bindata будет содержаться 6 байтов в такой последовательности:0x12, 0x34, 0x78, 0x56, 0x41, 0x42 (в шестнадцатиричной системе счисления).


unpack


Распаковывает данные из двоичной строки.

Синтаксис:

array unpack(string format, string data);

Распаковывает данные из двоичной строки в массив согласно формату. Возвращает массив, содержащий распакованные элементы.

$array = unpack("c2chars/nint", $binarydata);


Возникающий в результате массив будет содержать "chars1", "chars2" и "int".

Строковые суммы и хеш-функции


strlen


Возвращает длину строки.

Синтаксис:

int strlen(string str)

Возвращает просто длину строки, т.е., сколько символов содержится в str.

Строка может содержать любые символы, в том числе и с нулевым кодом. Функция strlen() будет правильно работать и с такими строками.


count_chars


Возвращает информацию о символах строки.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*