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

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

Автор white cat

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ 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


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ символах строки.