Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ 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
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ ΡΡΡΠΎΠΊΠΈ.