php解压phar,php打包phar文件

需求描述

有时候用php写一些小脚本处理一些东西很方便,但是带一大堆文件很不舒服,这个时候可以把文件功能整理成一个入口,打包成一个phar文件来使用,如下

打包

打包之前要把php.ini中的配置项phar.readonly设置成Off

452ae94ea51f3d8f97a1e7dfd088df70.png

把脚本文件整理成所有功能都从一个入口文件进入。然后把所有文件放入一个目录里$phar = new Phar('test.phar');

// $phar->extractTo('fmt');

//指定压缩的目录,第二个参数为指定压缩的文件类型正则

$phar->buildFromDirectory(__DIR__ . '/phars/', '/\.php$/');

//压缩方式 Phar::GZ  PHAR::BZ2

$phar->compressFiles(Phar::GZ);

//设置默认的启动文件,也就是入口文件

$phar->setStub($phar->createDefaultStub('index.php'));

把上面代码保存到phars同级目录,打开命令行输入下面命令就可以在当前目录生成一个test.phar文件啦php.exe dabao.php

解压

解压后会自动创建目录$phar = new Phar('test.phar');

$phar->extractTo('test');

注意事项

打包成phar后如果脚本里有使用 __dir__ 这些常量的话要把phar://替换掉,要不然file_get_content mkdir 等一些函数会报错找不到路径,但是require_once include等是可以用的define('ROOT_PATH', str_replace('phar://', '', dirname(__dir__)));

或着用下面来取当前所在目录define('ROOT_PATH', realpath('.'));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值