PHP中phar包的使用

Posted leayrainy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中phar包的使用相关的知识,希望对你有一定的参考价值。

php5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。

首先需要修改php.ini配置将phar的readonly关闭,默认是不能写phar包的,include是默认开启的。

phar.readonly => On

创建一个phar压缩包

<?php
$phar = new Phar(swoole.phar);
$phar->buildFromDirectory(__DIR__./../, /\.php$/);
$phar->compressFiles(Phar::GZ);
$phar->stopBuffering();
$phar->setStub($phar->createDefaultStub(lib_config.php));

 

new Phar的参数是压缩包的名称。buildFromDirectory指定压缩的目录,第二个参数可通过正则来制定压缩文件的扩展名。

Phar::GZ表示使用gzip来压缩此文件。也支持bz2压缩。参数修改为 PHAR::BZ2即可。

setSub用来设置启动加载的文件。默认会自动加载并执行 lib_config.php。

执行此代码后,即生成一个swoole.phar文件。

使用phar压缩包

<?php
include swoole.phar;
include swoole.phar/code/page.php;

 

使用phar可以很方便的打包你的代码,集成部署到线上机器。

以上是关于PHP中phar包的使用的主要内容,如果未能解决你的问题,请参考以下文章

php php phar打包文件[php phar包装代码]

使用phar上线你的代码包

php 反序列化漏洞之phar://

深入理解PHP Phar反序列化漏洞原理及利用方法

php使用phar进行压缩/解压

利用phar文件拓展php反序列化攻击