Phar:PHP文件归档

1. Phar简介

Phar是PHP Archive缩写,将php文件归档到一个文件包。

将一个模块的文件打包成一个phar,这样方便模块整体迁移,只需将phar文件移动过去,其他环境中include即可使用。

类似于java的 .jar 文件。

php 5.3时,为php的C语言扩展,安装php时会默认安装。

在安装目录 bin下面有phar文件,通过 php -m 查看php扩展,也应该能找到。

$ .bin/phar.phar help终端可以直接运行。

2. 创建Phar文件

2.1 修改php.ini配置文件

phar.readonly = 0 这个参数必须设置为0,如果为1,表示phar文档不可写。

phar.require_hash = 1 这个参数为每个phar打包的文件生成一个签名,如果发现签名有问题,则拒绝处理。防止外部注入一些不安全的脚本。

phar.cache_list 允许web server启动时预加载phar文档,提升访问速度。

2.2 创建phar对象

创建my.phar文件

使用startBuffering来打开缓冲,对文件修改,使用缓冲的好处是不用每次修改都保存文件,提升了效率。

$p->startBuffering();$p['file.txt'] = 'hi'; $p['file2.txt'] = 'there';$p['file3.txt'] = 'babyface';$p['file3.txt']->setMetadata(42);$p['test/time.php'] = file_get_contents('time.php');上面代码用来添加文档,添加了4个文档。最后一个time.php在test目录下面。

2.3 phar文件存根

文件存根是phar最开始运行的一段代码。

用setStub方式来创建

$p->setStub("最后关闭缓冲区

$p->stopBuffering();运行后,会在当前目录生成一个myphar.phar文件。

3. Phar文档使用

phar文档很方便的集成到其他应用程序中。使用时跟单个php文件一样看待,直接 include即可。

一般有下面两种方式:

include 'myphar.phar';这样把phar中所有的文件都引入了。

include 'phar://myphar.phar/test/time.php';这个只把test目录下的time.php文件引入了。

引入后可以直接使用原php文件中变量。

还可以直接读取:

echo file_get_contents('phar://my.phar/file.txt');这个会输出 hi。

地址:http://blog.csdn.net/yonggang7/article/details/24142725

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

点击阅读全文

相关课程推荐

《javascript初级视频教程》是JavaScript的入门课程,旨在让大家认识,了解JavaScript的常见概念

jQuery 很容易学习,希望通过我们的《jquery 基础视频教程》可以帮助大家来更好的学习jQuery。 jQuery 是一个 JavaScript 库,简化了 JavaScript 编程。

jQuery教程36321次播放

《javascript三级联动视频教程》介绍了javascript开发的三级联动功能,该功能在日常使用中还是经常能用的到的一个。

javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。

jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。

jQuery教程83464次播放

全部评论我要评论

取消发布评论发送

发布

1/1

php phar教程,Phar:PHP文件存档相关推荐

  1. php phar教程,PHP中phar包的使用教程

    前言 PHP5.3之后支持了类似Java的jar包,名为phar.用来将多个PHP文件打包为一个文件. 首先需要修改php.ini配置将phar的readonly关闭,默认是不能写phar包的,inc ...

  2. php composer failed to open file: phar://composer.phar/bin........问题解决

    今天用命令行运行composer安装依赖时突然报如下错误: <b>Notice</b>: failed to open file: phar://composer.phar/b ...

  3. php php phar,PHP: Phar - Manual

    Phar::addEmptyDir - 添加一个空目录到 phar 档案 Phar::addFile - 将一个文件从文件系统添加到 phar 档案中 Phar::addFromString - 以字 ...

  4. jira linux 一键安装包下载地址,JIRA使用教程:使用文件包安装JIRA

    原标题:JIRA使用教程:使用文件包安装JIRA 申请试用请咨询在线客服. 首先 在安装前确保你已经安装Java并设置了JAVA_HOME .另请参阅 Supported Platforms 了解其他 ...

  5. php phar,PHP phar:协议对象注入技术介绍

    前言 在之前的BlackHat 2018大会上公布了一款针对PHP应用程序的全新攻击技术.我们将通过这篇文章简单介绍下. 来自Secarma的安全研究员Sam Thomas发现了一种新的开发技术,它可 ...

  6. php phar 反序列化,phar反序列化

    phar原理: 一个标志,格式为xxx<?php xxx;__HALT_COMPILER();?>,前面内容不限,但必须以__HALT_COMPILER();?>来结尾,否则phar ...

  7. php phar 反序列化,PHAR反序列化拓展操作总结

    *本文原创作者:cck,本文属FreeBuf原创奖励计划,未经许可禁止转载 前言 近些阵子反序列化漏洞横行,看了几篇文章,整个漏洞发现过程是非常有意思的,所以希望总结下来,分享给大家一起研究讨论,如有 ...

  8. Swift3.0语言教程字符串与文件的数据转换

    Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...

  9. Spring Boot 2.x基础教程:多文件的上传

    昨天,我们介绍了如何在Spring Boot中实现文件的上传(博客地址:https://blog.didispace.com/spring-boot-learning-21-4-3/).有读者问:那么 ...

最新文章

  1. 图森无人车联合UCSD新研究:自动驾驶更省油
  2. ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
  3. async function_掌握 Async/Await
  4. 借助Sniffer分析网络流量
  5. boost::statechart模块实现终止测试
  6. (十) 一起学 Unix 环境高级编程 (APUE) 之 线程控制
  7. 安装dubbo管理控制台
  8. PLY——Python Lex Yacc
  9. 2020软考软件设计师--基础知识培训视频-任铄(小任老师)-专题视频课程
  10. RSS简述 及 Java构造RSS接口
  11. matlab2018a字体乱码怎么办,解决Matlab 2018a源代码的中文支持问题
  12. YOLOv3使用笔记
  13. PYNQ入门(2)——启动系统及例程查看
  14. BlueTooth: 蓝牙Profile的概念和常见种类
  15. CPU中的寄存器和地址概念
  16. 各种语言随机数的产生方法
  17. 无需交 300 元认证费,快速创建已认证的小程序
  18. 基于MATLAB改进Otsu阈值分割的车道线检测
  19. 1.5功能播报:搜狐畅言社会化评论系统智能应用
  20. 七牛云使用之配置域名CNAME

热门文章

  1. 时间序列学习笔记(1)
  2. 修改Linux终端命令提示符颜色、PS1
  3. foxmail基本操作
  4. Transaction Processing Monitor(事务处理监视器),TP服务,TP监控服务
  5. 3D相册加背景图和背景音乐
  6. (JS逆向)公共资源交易网详情页的URL加密逻辑
  7. [tjctf 2023] crypto,pwn,rev部分
  8. 解决win 10 开机状态下每隔2分钟自动息屏的办法
  9. 萤石C6语言对话怎么设置,萤石C6使用说明
  10. mysql悲观锁会有脏数据吗_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...