(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::interceptFileFuncs β Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ phar ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ fopen, file_get_contents, opendir ΠΈ Π²ΡΠ΅ stat-ΡΡΠ½ΠΊΡΠΈΠΈ
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ phar ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ fopen(), readfile(), file_get_contents(), opendir() ΠΈ Π²ΡΠ΅ stat-ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΠΈΠ· phar-Π°ΡΡ ΠΈΠ²Π° Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΡΡΠΌ, ΡΠΎ Π²ΡΠ·ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ Π°ΡΡ ΠΈΠ²Π°. Π ΡΠ»ΡΡΠ°Π΅ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΆΡΡΡΠΊΠΎΠΌΡ Π΄ΠΈΡΠΊΡ.
No parameters.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Phar::interceptFileFuncs()
<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ /path/to/myphar.phar ΠΈ Π² Π½Π΅ΠΌ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ»Ρ file.php ΠΈ
file2.txt. file.php ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Phar::interceptFileFuncs()
<?php
echo file_get_contents('file2.txt');
?>
Π ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ PHP Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ file2.txt Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ,
ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ Π·Π°ΠΏΡΡΠΊΠ° file.php, Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ Π² ΡΠ»ΡΡΠ°Π΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Phar::interceptFileFuncs() ΡΠΊΠ°ΠΆΠ΅Ρ
PHP, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ - ΡΡΠΎ phar:///path/to/myphar.phar/ ΠΈ,
Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡ ΡΠ°ΠΉΠ»
phar:///path/to/myphar.phar/file2.txt.