Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
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&#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->movie[0]->plot; // "So this language. It's like..."
?>
ΠΡΠΈΠΌΠ΅Ρ 3. Π Π°Π±ΠΎΡΠ° Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² SimpleXML
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΈΠΊΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ).
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° <movie> ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ . */
foreach ($xml->movie as $movie) {
echo $movie->plot, '<br />';
}
?>
ΠΡΠΈΠΌΠ΅Ρ 4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
ΠΡΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. SimpleXML ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΡΠΈΠ±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² <rating> Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΈΠ½ΠΎ.*/
foreach ($xml->movie[0]->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->movie->title == 'PHP: Behind the Parser') {
print 'ΠΠΎΠΉ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠΈΠ»ΡΠΌ.';
}
htmlentities((string) $xml->movie->title);
?>
ΠΡΠΈΠΌΠ΅Ρ 6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Xpath
Π SimpleXML Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Xpath. ΠΠΎΠΈΡΠΊ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² :
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
foreach ($xml->xpath('//character') as $character) {
echo $character->name, ' ΡΡΠΈΠ³ΡΠ°Π» ', $character->actor, '<br />';
}
?>
'//' ΡΠ»ΡΠΆΠΈΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅Ρ.
ΠΡΠΈΠΌΠ΅Ρ 7. ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π½Π½ΡΠ΅ Π² SimpleXML Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ. ΠΠ±ΡΠ΅ΠΊΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
$xml->movie[0]->characters->character[0]->name = 'Miss Coder';
echo $xml->asXML();
?>
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π½ΠΎΠ²ΡΠΉ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΈΠ΄Π΅Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΠΌΠ΅ΡΡΠΎ Ms. Coder Π±ΡΠ΄Π΅Ρ Miss Coder.
ΠΡΠΈΠΌΠ΅Ρ 8. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ DOM
PHP ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° SimpleXML Π² DOM ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ DOM-ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² SimpleXML-ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->title;
?>
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
SimpleXMLElement->asXML -- ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
SimpleXMLElement->attributes -- ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
SimpleXMLElement->children -- ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°