ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Phar-Π°ΡΡ
ΠΈΠ²ΠΎΠ²: ΠΎΠ±ΡΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° phar
ΠΠ±ΡΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° Phar ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ fopen() Π΄Π»Ρ
ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ (Π½Π΅ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ), unlink(), stat(),
fstat(), fseek(), rename()
ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ opendir(),
rmdir() ΠΈ mkdir().
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΈ ΠΏΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π² Phar-Π°ΡΡ
ΠΈΠ²Π΅:
ΠΠ±ΡΡΡΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° phar Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎ,
ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ INI
allow_url_fopen ΠΈ
allow_url_include ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ phar-Π°ΡΡ
ΠΈΠ²Ρ Ρ Π½ΡΠ»Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°,
Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ»Π°ΡΡ Phar. ΠΠ±ΡΡΡΠΊΡ ΠΏΠΎΡΠΎΠΊΠ° Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
staff at pro-unreal dot de ΒΆ15 years ago
Please note that the phar stream wrapper does not work with any glob.
When you decide to move your project to phar archives you need to consider this.
The following won't work:
<?php
glob('phar://some.phar/*');
new DirectoryIterator('glob://phar://some.phar/*');
?>
While the following will work:
<?php
new DirectoryIterator('phar://some.phar/');
?>
carl at dot dot com ΒΆ15 years ago
Some Examples of how to use the stream wrapper would be really helpful.
My floundering attempts reveal only the following:
<?php
$p = new PharData(dirname(__FILE__).'/phartest.zip', 0,'phartest',Phar::ZIP) ;
$p->addFromString('testfile.txt',
'this is just some test text');
echo file_get_contents('phar://phartest.zip/testfile.txt');
file_put_contents('phar://phartest.zip/testfile.txt',
'Thist is text for testfile.txt');
$context = stream_context_create(
array('phar' =>array('compress' =>Phar::ZIP))
) ;
file_put_contents(
'phar://phartest.zip/testfile.txt',
'Thist is text for testfile.txt',0,$context);
$f = fopen(
'phar://C:\\Inetpub\\wwwroot\\PACT\\test\\phartest.zip\\testfile.txt',
'r') ;
?>