Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅Π»ΠΈΠ· Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ . ΠΠΎΠ²ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π» Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ΅ΡΠΈΡ Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠ°Π²Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°.
ΠΠ»ΡΡΠΎΠ²ΠΈ Π² PHP 7.4:
- β ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅ Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
class User {
public int $id;
public string $name;
} - ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ βfn(parameter_list) => exprβ, Ρ ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ ΠΏΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ βfn($x) => $x + $yβ Π΅ Π°Π½Π°Π»ΠΎΠ³ Π½Π° β$fn2 = function ($x) use ($y) {return $x + $y;}β);
- β??=β, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (βa ??= bβ Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π° βa = a ?? bβ, Π°ΠΊΠΎ βaβ Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π°, ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΌΡ ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°, Π° Π°ΠΊΠΎ Π½Π΅ Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π°, ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° βbβ);
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΡΠ° Π½Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΎΡ ΡΡΡ
ΡΠΈΠΏΠΎΠ²Π΅ Π½Π° Π²ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°ΡΠ° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ( Π½Π° Π²ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ). Π PHP ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
class A {}
class B extends A {}class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
} - ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Π·Π° ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π² ΠΌΠ°ΡΠΈΠ²ΠΈ ββ¦$varβ ΠΈΠ·Π²ΡΡΡΠ²Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² ΠΌΠ°ΡΠΈΠ²;
$parts = [βappleβ, βpearβ];
$fruits = [βbananaβ, βorangeβ, β¦$parts, βwatermelonβ];
// [βbananaβ, βorangeβ, βappleβ, βpearβ, βwatermelonβ]; - Π½Π°Π³Π»Π΅Π΄Π½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΈΡΠ»Π° Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ Π² ΡΠΈΡΠ»ΠΎΠ²ΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΈ (1_000_000_00);
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΊΡΠΌ ΠΎΠ±Π΅ΠΊΡΠ°, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡ ΠΎΠ±Π΅ΠΊΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊΠ°;
- ΠΠΎΠ² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ (ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ Serializable ΠΈ __sleep() / __wakeup()), ΠΊΠΎΡΡΠΎ Π·Π°ΠΌΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Serializable, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠ±ΡΠ²Π΅Π½ Π·Π° ΠΎΡΡΠ°ΡΡΠ»;
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
public function __serialize(): array;// ΠΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°
public function __unserialize(array $data): void; - Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° ;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈΡ ΠΊΠΎΠ΄. ΠΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΊΠ°Π·Π²Π° PHP ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ°. Π’ΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈ ΠΎΠΏΠΊΠΎΠ΄ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΠ΅Π· ΡΡΡ Π½ΠΎΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° opcache_compile_file(); - Π ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Hash Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ crc32c Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΈ ΡΡΠΌΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ Π½Π° ΠΠ°ΡΡΠ°Π½ΡΠΎΠ»ΠΈ;
- Π ΡΡΠ½ΠΊΡΠΈΡΡΠ° password_hash() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ argon2i ΠΈ argon2id, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Sodium, Π°ΠΊΠΎ PHP Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π±Π΅Π· libargon;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° mb_str_split(), Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° Π½Π° str_split(), Π½ΠΎ ΠΎΠΏΠ΅ΡΠΈΡΠ°ΡΠ° Π½Π΅ Ρ Π±Π°ΠΉΡΠΎΠ²Π΅, Π° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΈ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅;
- Π ΡΡΠ½ΠΊΡΠΈΡΡΠ° strip_tags() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ² Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅, Ρ.Π΅. Π²ΠΌΠ΅ΡΡΠΎ strip_tags($str, ' Π± ), ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ strip_tags($str, ['a', 'p']);<a><p>ΠΠΌΠ΅ΡΡΠΎ strip_tags($str, ' b '), ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΊΠ°Π·Π²Π°ΡΠ΅ strip_tags($str, ['a', 'p']);
- Π proc_open() Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΈΡΠ΅ Π² ΠΌΠ°ΡΠΈΠ², Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΡΠΊΠ°Π·Π²Π° Π½ΠΈΠ· Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΡΠ»Π΅Π² ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ;
proc_open([βphpβ, β-rβ, βecho Β«Hello World\nΒ»;β], $descriptors, $pipes);
// ΠΠ°ΠΊ 2>&1 Π² shell
proc_open($cmd, [1 => [βpipeβ, βwβ], 2 => [βredirectβ, 1]], $pipes);// ΠΊΠ°ΠΊ 2>/dev/null ΠΈΠ»ΠΈ 2>nul Π² shell
proc_open($cmd, [1 => [βpipeβ, βwβ], 2 => [βnullβ]], $pipes); - ΠΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° Firebird/Interbase, Recode ΠΈ WDDX. Π’Π΅Π·ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΡΠ΅Π· PECL;
- ΠΡΠ΅Π²Π΅Π΄Π΅Π½ΠΈ Π² ΡΠ°Π·ΡΡΠ΄Π° ΡΠ°ΠΊΠΈΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ΅ΡΠ½Π°ΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π±Π΅Π· ΡΠΊΠΎΠ±ΠΈ, Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΈ ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΈ ΡΠΊΠΎΠ±ΠΈ (β$var{$idx}β), ΡΡΠ½ΠΊΡΠΈΡΡΠ° is_real() ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΡΠΈΠΏ real, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° parent Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΊΠ»Π°Ρ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ allow_url_include, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° array_key_exists() Π½Π°Π΄ ΠΎΠ±Π΅ΠΊΡΠΈ.
ΠΠ±ΡΠ²Π΅Π½ΠΈ Π·Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ get_magic_quotes_gpc(), get_magic_quotes_runtime(),
hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ
base_convert(), bindec(), octdec() ΠΈ hexdec(), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΡΡΡΠΎΠΊΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½ Π² mb_ereg_replace().
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
