Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ PHPΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 19

Автор white cat

Бинтаксис:

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 -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта