Вот полный список спецификаторов формата:
// Целое, целое, все остальное - сиволы
$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
Возвращает информацию о символах строки.
Синтаксис:
mixed count_chars(string str [, int mode])
Функция count_chars() подсчитывает частоту встречаемости каждого байта (0-255) в строке str и возвращает в массиве результат согласно необязательному аргументу mode. mode может принимать следующие значения:
md5
Получение строки-хеша MD5.
Синтаксис:
string md5(string str);
Возвращает хеш-код строки str, основанный на алгоритме корпорации RSA Data Security под названием "MD5 Message-Digest Algorithm".
Хеш-код - это просто строка, практически уникальная для каждой из строк str. То есть вероятность того, что две разные строки, переданные в str, дадут нам одинаковый хеш-код, стремиться к нулю.
В то же время, если длина строки str может достигать нескольких тысяч символов, то ее MD5-код занимает максимум 32 символа.
crc32
Получение полиминала строки crc32.
Синтаксис:
int crc32(string str);
Функция crc32() вычисляет 32-битную контрольную сумму строки str. То есть, результат ее работы - 32-битное (4-байтовое) целое число.
Обычно эту функцию используют для проверки целостности переданных данных.
Эта функция работает гораздо быстрее md5(), но в то же время выдает гораздо менее надежные "хеш-коды" для строки. Так что, теперь, чтобы получить методом случайного подбора для двух разных строк одинаковые "хеш-коды", вам потребуется не триллион лет работы самого мощного компьютера, а всего лишь год-другой.
crypt
Производит симметричное шифрование.
Синтаксис:
string crypt(string str [,string salt]);
В аргументе str задается строка, которую надо зашифровать.
Хеш-код для одной и той же строки, но с различными значениями salt (Кстати, это должна быть обязательно двухсимвольная строка) дает разные результаты. Если параметр salt пропущен, PHP сгенерирует его случайным образом.
В системах, которые поддерживают несколько алгоритмов шифрования, следующие константы устанавливаются равными 1 или 0, в зависимости от того, поддерживается ли данный алгоритм или нет:
Т.к. данная функция использует односторонний алгоритм шифрования, то функции дешифрования не имеется.
metaphone
Производит вычисление метафон-хеша.
Синтаксис:
string metaphone(string str);
Данная функция схожа по действию с soundex(), вычисляет код произношения слова, переданного в строке str, но с повышенной точностью вычисления, т.к. использует правила произношения английского языка.
Возвращаемое строковое значение может быть переменной длины.
soundex
Вычисления хеша сходности произношения.
Синтаксис:
string soundex(string str);
Функция soundex() используется для проверки правописания, когда приблизительно известно как звучит слово, но не известно, как оно пишется, и имеется словарь (база данных), относительно которого можно осуществить проверку.
Возвращается строка из 4 символов: первая буква слова и 3 цифры.
soundex("Euler") == soundex("Ellery") == "E460";
soundex("Gauss") == soundex("Ghosh") == "G200";
soundex("Hilbert") == soundex("Heilbronn") == "H416";
soundex("Knuth") == soundex("Kant") == "K530";
soundex("Lloyd") == soundex("Ladd") == "L300";
soundex("Lukasiewicz") == soundex("Lissajous") == "L222";
XML
Введение
SimpleXML предоставляет очень простой в восприятии, интуитивно-понятный доступ к XML-документам, позволяющий совершать разнообразные операции с элементами XML-документа и их атрибутами.
Требования
SimpleXML присутствует в PHP начиная с версии 5.
Установка
SimpleXML установлен в PHP по умолчанию. Для того, чтобы отключить это расширение, перекомпилируйте PHP с ключом --disable-simplexml.
Примеры
Практически все примеры используют XML-документ. Вместо того, чтобы каждый раз повторять содержание XML-документа в каждом примере, мы поместим XML-документ в файл, который будет читать при помощи функции simplexml_load_file().