KnigaRead.com/

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

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

Синтаксис:

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().

<?php

$xmlstr = <<<XML

<?xml version='1.0' standalone='yes'?>

<movies>

<movie>

<title>PHP: Behind the Parser</title>

<characters>

<character>

<name>Ms. Coder</name>

<actor>Onlivia Actora</actor>

</character>

<character>

<name>Mr. Coder</name>

<actor>El Act&amp;#211;r</actor>

</character>

</characters>

<plot>

So, this language. It's like, a programming language. Or is it a

scripting language? All is revealed in this thrilling horror spoof

of a documentary.

</plot>

<rating type="thumbs">7</rating>

<rating type="stars">5</rating>

</movie>

</movies>

XML;

?>

Простоту работы с SimpleXML можно продемонстрировать извлечением текста из заданного элемента XML-документа.

Пример 2. Получение текста в <plot>



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml-&gt;movie[0]-&gt;plot; // "So this language. It's like..."

?>

Пример 3. Работа с группой элементов в SimpleXML

Можно применять циклы для получения дочерних элементов заданного элемента (если дочерние элементы существуют).



<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


/* Для каждого элемента &lt;movie&gt; мы отображаем элемент . */

foreach ($xml-&gt;movie as $movie) {

echo $movie-&gt;plot, '&lt;br /&gt;';

}


?>

Пример 4. Использование атрибутов

Выше было показано как работать с элементами XML-документа и их значениями. SimpleXML также имеет доступ к атрибутам элементов. Атрибуты указанного элемента доступны как ассоциативный массив данного элемента.

<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


/* Получение доступа к атрибутам элементов &lt;rating&gt; для первого кино.*/

foreach ($xml-&gt;movie[0]-&gt;rating as $rating) {

switch((string) $rating['type']) { // Возвращает атрибуты как элементы массива

case 'thumbs':

echo $rating, ' thumbs up';

break;

case 'stars':

echo $rating, ' stars';

break;

}

}

?>

Пример 5. Сравнение элементов и их атрибутов с текстовыми значениями

Для того, чтобы сравнивать элемент или атрибут со строковыми значениями, или передавать содержание элемента или атрибута в функцию, которая использует строковое значение передаваемого параметра, вы должны использовать элементы и атрибуты как строки с признаком (string). В противном случае PHP воспримет передаваемое значение как объект.



<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


if ((string) $xml-&gt;movie-&gt;title == 'PHP: Behind the Parser') {

print 'Мой любимый фильм.';

}


htmlentities((string) $xml-&gt;movie-&gt;title);

?>

Пример 6. Использование Xpath

В SimpleXML включена поддержка запросов Xpath. Поиск всех элементов :



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);


foreach ($xml-&gt;xpath('//character') as $character) {

echo $character-&gt;name, ' съиграл ', $character-&gt;actor, '&lt;br /&gt;';

}

?>

'//' служит групповым символом. Чтобы задать абсолютный путь, требуется убрать один слеш.

Пример 7. Задание новых значений

Данные в SimpleXML не могут быть постоянными. Объект учитывает изменения всех его элементов.



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);


$xml-&gt;movie[0]-&gt;characters-&gt;character[0]-&gt;name = 'Miss Coder';


echo $xml-&gt;asXML();

?>

Результатом вышеуказанного примера будет новый XML-документ, идеентичный оригиналу за исключением того, что в новом XML-документе будет вместо Ms. Coder будет Miss Coder.

Пример 8. Взаимодействие с DOM

PHP имеет механизм конвертации XML-документов из формата SimpleXML в DOM и обратно. Следующий пример показывает как конвертировать DOM-элемент в SimpleXML-элемент:

<?php

$dom = new domDocument;

$dom-&gt;loadXML('&lt;books&gt;&lt;book&gt;&lt;title&gt;blah&lt;/title&gt;&lt;/book&gt;&lt;/books&gt;');

if (!$dom) {

echo 'Ошибка преобразования документа';

exit;

}


$s = simplexml_import_dom($dom);


echo $s-&gt;book[0]-&gt;title;

?>


Содержание:


SimpleXMLElement->asXML -- Возвращает правильно сформированный XML-документ

SimpleXMLElement->attributes -- Возвращает атрибуты элемента.

SimpleXMLElement->children -- Возвращает дочерние элементы для заданного элемента

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