ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ |>.
<?php
$result = "Hello World" |> strlen(...);
print $result . PHP_EOL; // Prints "11"ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Closure. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ NoDiscard, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (void), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅
ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ (void) Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ,
Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ,
ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ #[\NoDiscard], ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅
Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ IDE ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
<?php
#[\NoDiscard]
function concat(string $a, string $b): string {
return $a . $b;
}
// ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ concat(), ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ,
// Π»ΠΈΠ±ΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ β ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (void) ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΉΠ»Π΅ xxx.php.
concat("a", "b");
// ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ΄Π°ΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
$results = concat("a", "b");
// ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ΄Π°ΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (void) Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π°Π²ΠΈΠ»Π° Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
(void)concat("a", "b");
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²Π½Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅
const MY_CONST = 1; ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ β define('MY_CONST', 1);, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
ΠΡΡΠΈΠ±ΡΡ Deprecated ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ.
#[\DelayedTargetValidation]ΠΠΎΠ²ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ DelayedTargetValidation ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ΄Π°ΡΡ ΡΠ΄ΡΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΡΠ΅Π»ΡΠΌ. ΠΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠ΄ΡΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ReflectionAttribute::newInstance().
#[\Override] Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΡΡΠΈΠ±ΡΡ Override ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ².
Π€Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΡΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ .
<?php
const T1 = (int) 0.3; // Π Π°Π½ΡΡΠ΅: "Fatal error: Constant expression contains invalid operations"
print T1 . PHP_EOL; // Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ "0"Π―Π·ΡΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ clone ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ°Π»Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ $withProperties.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±ΡΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ PHP-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ΅ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ
CURLINFO_USED_PROXY (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libcurl >= 8.7.0),
CURLINFO_HTTPAUTH_USED ΠΈ CURLINFO_PROXYAUTH_USED (libcurl >= 8.12.0).
ΠΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ curl_getinfo() ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ° ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π°
Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ "used_proxy",
"httpauth_used" ΠΈ "proxyauth_used".
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° CURLINFO_USED_PROXY ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ»Ρ,
Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ Π½Π΅ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ, ΠΈΠ»ΠΈ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ.
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ CURLINFO_HTTPAUTH_USED ΠΈ CURLINFO_PROXYAUTH_USED
ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTTP ΠΈ ΠΏΡΠΎΠΊΡΠΈ
Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° CURLAUTH_*.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ cURL-ΠΎΠΏΡΠΈΡ CURLOPT_INFILESIZE_LARGE β
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ CURLOPT_INFILESIZE.
Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΎΠΏΡΠΈΡ CURLOPT_INFILESIZE Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ
32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° 2,0 ΠΠΈΠ, Π΄Π°ΠΆΠ΅ Π² 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
.
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° CURLOPT_INFILESIZE_LARGE ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅,
ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ CURLFOLLOW_OBEYCODE, CURLFOLLOW_FIRSTONLY
ΠΈ CURLFOLLOW_ALL Π΄Π»Ρ ΠΎΠΏΡΠΈΠΈ CURLOPT_FOLLOWLOCATION
ΡΡΠ½ΠΊΡΠΈΠΈ curl_setopt().
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° CURLFOLLOW_OBEYCODE Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ.
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° CURLFOLLOW_FIRSTONLY ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ,
ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π°Π½ΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΠ²ΡΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° CURLFOLLOW_ALL ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ CURLOPT_FOLLOWLOCATION Π·Π½Π°ΡΠ΅Π½ΠΈΡ true.
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ CURLINFO_CONN_ID (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libcurl >= 8.2.0).
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ cURL Π²ΡΠΏΠΎΠ»Π½ΡΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ
.
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π½Π° ΡΡΠΎΠ²Π½Π΅ PHP ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· ΡΠΎ ΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ curl_getinfo() ΠΌΠ°ΡΡΠΈΠ²Π°
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΊΠ»ΡΡΠΎΠΌ "conn_id".
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ curl_getinfo() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ CURLINFO_QUEUE_TIME_T (ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libcurl >= 8.6.0).
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
,
ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΎΠ²ΡΠ» Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libcurl ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ CURLINFO_QUEUE_TIME_T Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ option
ΡΡΠ½ΠΊΡΠΈΠΈ curl_getinfo().
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠΏΡΠΈΠΈ CURLOPT_SSL_SIGNATURE_ALGORITHMS,
ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TLS.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Dom\Element::$outerHTML.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ $children Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Dom\ParentNode.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Exif-ΡΠ΅Π³ΠΎΠ² OffsetTime*.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΡΠΌΠ°ΡΠ° HEIF/HEIC.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π°Π³ FILTER_THROW_ON_FAILURE
Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ. Π€Π»Π°Π³ Π·Π°ΡΡΠ°Π²ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ.
ΠΠΎΠ²ΡΠΉ ΡΠ»Π°Π³ Π½Π΅Π»ΡΠ·Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ»Π°Π³ΠΎΠΌ FILTER_NULL_ON_FAILURE;
ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ»Π°Π³ΠΈ PHP Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ ValueError.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°: NumberFormatter::CURRENCY_ISO,
NumberFormatter::CURRENCY_PLURAL,
NumberFormatter::CASH_CURRENCY
ΠΈ NumberFormatter::CURRENCY_STANDARD
Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠΈΡΠ΅Π», ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π²Π°Π»ΡΡΠΎΠΉ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Locale::addLikelySubtags() ΠΈ Locale::minimizeSubtags() Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΡΠ΅Π³ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ IntlListFormatter Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ
ΠΈ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΡ:
ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ IntlListFormatter::TYPE_AND,
IntlListFormatter::TYPE_OR,
IntlListFormatter::TYPE_UNITS,
Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΈΠ½Ρ IntlListFormatter::WIDTH_WIDE,
IntlListFormatter::WIDTH_SHORT,
IntlListFormatter::WIDTH_NARROW.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ICU 67.
Π ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Pdo\Sqlite::ATTR_BUSY_STATEMENT.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°: Pdo\Sqlite::ATTR_EXPLAIN_STATEMENT,
Pdo\Sqlite::EXPLAIN_MODE_PREPARED,
Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN,
Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN_QUERY_PLAN.
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Pdo\Sqlite::ATTR_TRANSACTION_MODE
Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Pdo\Sqlite::TRANSACTION_MODE_DEFERRED,
Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE ΠΈ Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE
Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° beginTransaction().
Π€ΡΠ½ΠΊΡΠΈΠΈ session_set_cookie_params(),
session_get_cookie_params()
ΠΈ session_start() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ»ΡΡ "partitioned"
Π΄Π»Ρ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
cookie.
ΠΠ°ΡΠΈΠ°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ³ΡΡΠΆΠ°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ SoapClient::__getTypes().
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°ΡΡΠΈΠ±ΡΡΠ° xml:lang Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Reason Text Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ SOAP 1.2.
Π ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² SoapFault::__construct()
ΠΈ SoapServer::fault() Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
lang. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
Ρ SOAP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ .NET.
Π€ΡΠ½ΠΊΡΠΈΡ mail() ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°
sendmail ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ Π΅Π³ΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
PHP Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ false.
Π Π°Π½ΡΡΠ΅ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ
ΡΡΠ°Π½ΡΠΏΠΎΡΡ sendmail.
Π€ΡΠ½ΠΊΡΠΈΡ getimagesize() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HEIF/HEIC.
Π€ΡΠ½ΠΊΡΠΈΡ getimagesize() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SVG, Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ext-libxml. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΠΈ image_type_to_extension() ΠΈ image_type_to_mime_type() ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ IMAGETYPE_SVG.
ΠΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ getimagesize(),
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
"width_unit" ΠΈ "height_unit", ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ
Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ
Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
β px.
ΠΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠ°Π½ΡΠΈΠΌΠ΅ΡΡΠ°Ρ
β cm, Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
β px.
Π€ΡΠ½ΠΊΡΠΈΠΈ setcookie() ΠΈ setrawcookie()
ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ»ΡΡ "partitioned".
ΠΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ URI, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΊΠ»ΡΡΡΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ URI-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² RFC 3986 ΠΈ WHATWG.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ namespace Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
XSLTProcessor::getParameter(),
XSLTProcessor::setParameter()
ΠΈ XSLTProcessor::removeParameter() ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ
ΠΈ Π½Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΡΡΠΎΠΉ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
name ΡΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅ Π² Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΠ»Π°ΡΠΊΠ° ΠΈΠ»ΠΈ QName-ΠΈΠΌΠ΅Π½ΠΈ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΠΏΡΠ΅ΡΠΈΠΊΡΠ°
ΠΈΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° href ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ flock() ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΈ zlib. Π Π°Π½ΡΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π² ΡΠ°ΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ Π·Π°Π²Π΅ΡΡΠ°Π»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.