请解释如何创建 PHP 的 Phar 存根

2023-12-25

我正在尝试创建一个非常简单的 PHP CLI 应用程序,可以作为phar http://php.net/manual/book.phar.php从命令行文件:

# php myProject.phar

这是我到目前为止所尝试过的:

我的项目

我的项目位于一个名为MyProject它里面有这两个文件:

 |-- createPhar.php
 `-- bootstrap.php

引导程序.php

The bootstrap.php文件包含以下内容:

<?php
print phpversion() . PHP_EOL;
print 'i am some script' . PHP_EOL;

当我从 Ubuntu 命令行运行此脚本时:

# cd MyProject 
# php bootstrap.php

我得到以下输出:

5.3.2-1ubuntu4.9
i am some script

创建Phar.php

createPhar.php 文件旨在将项目转换为 Phar 存档。 它看起来像这样:

<?php    
$phar = new Phar('MyProject.phar');
$phar->addFile('bootstrap.php');
$phar->setStub( $phar->createDefaultStub('bootstrap.php') );

当我运行该脚本时...

# php createPhar.php

...一个名为MyProject.phar在我的项目目录中创建。

|-- bootstrap.php
|-- createPhar.php
`-- MyProject.phar

现在问题来了

当我运行 Phar 文件时...

# php MyProject.phar 

...我希望看到与我运行时得到的相同的输出bootstrap.php脚本。

相反,我什么也没看到。根本没有输出。这意味着我的bootstrap.php脚本未包含在创建的默认存根中$phar->createDefaultStub('bootstrap.php')

我认为我误解了 Phar 及其存根的创建方式。请您解释一下我哪里出错了。


回答我自己的问题。

上面我的问题中概述的方法是创建 phar / phar 存根的一种正确方法。

它对我不起作用的原因是did为 Mario 工作(请参阅他在问题下方的评论),是因为我安装了 Suhosin 并且需要调整设置。

固定使用这里概述的技术 http://william.shallum.net/random-notes/suhosinpharurlnotallowed:

要修复,请输入:

suhosin.executor.include.whitelist="phar"

在 /etc/php5/cli/php.ini 中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请解释如何创建 PHP 的 Phar 存根 的相关文章

  • 当查询没有返回记录时,如何通过 PDO/Sqlite 获取列名?

    下面的代码允许我将 SQL 语句传递给一个类并调用其方法来显示一个漂亮的结果表 包括列名 然而 如果没有结果 我仍然想要列名要显示 很遗憾 getColumnMeta没有像我发现的其他示例中那样返回任何数据 有谁知道如何让 getColum
  • 使用 WordPress 中的钩子在帖子更新(自定义帖子类型)后获取更新值

    我想获得更新后操作的最新更新值 我已经使用了 save post post updated publish post挂钩但全部返回旧值 但我同时需要当前更新值 我试过下面的代码 add action post updated wpse634
  • angularjs路由,如何检查模板文件是否存在

    我在我的应用程序中使用 angularjs 一切都运行良好 但在加载模板之前我只想检查它是否确实存在于给定的路径上 这是我的代码 when page angularAMD route templateUrl function rp retu
  • 我如何解决语义错误:“类没有名为..”的关联

    我正在关注 symblog symfony2 教程的第 5 部分 http tutorial symblog co uk docs customising the view more with twig html 标题下 主页 博客和评论
  • 添加到数组连续数字

    这是我向SO提出的第一个问题 我希望能答对 在 PHP 中 如果你不会 Python 或伪语言也可以 给定一个包含 n 个元素的数组 old array 1 2 3 5 7 8 9 20 21 23 29 我需要向新数组添加连续数字 如果不
  • INET6_ATON 的替代 MySQL 代码

    将旧的 INET ATON 值转换为新的二进制 INET6 ATON 值 无需 INET6 ATON INET6 NTOA 我们在表中已有数据 字段类型为UNSIGNED INT其中保存了使用以下命令创建的 IPv4 数据INET ATON
  • $mysqli->fetch_object($result) 不起作用

    我正在学习mysqli 我正在尝试从表 tbllogin 中获取数据 DATABASE CONNECTION hostname p localhost database dbLogin username user1 password pwd
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • 如何在 PHP 中检查特定类型的对象

    我有一种方法 它接受 PDO 对象作为参数 允许用户使用现有连接 而不是打开新连接的方法 并节省资源 public static function databaseConnect pdo null 我知道is object 检查参数是否是一
  • PHP数组删除重复的键值并仅显示一个

    Array 0 gt Array user id gt 78 post id gt 3 post user added id gt 2 1 gt Array user id gt 76 post id gt 8 post user adde
  • 如何制作自己的 while 循环,就像 WordPress 循环一样?

    我是新来的 也是 PHP 新手 只是想知道如何制作我自己的灵活循环 就像在 WordPress 中一样 注意我不是在谈论 wordpress 我想在我自己的 PHP 应用程序上实现它 我们回顾一下WP 有一段代码是这样的 while hav
  • Yii:按条件进行多重排序

    我正在使用 CActiveDataprovider 显示来自不同表的数据 现在我遇到了一个问题 我有两个表 项目和类别 它们都有priority order 列 我需要使用这两个列的顺序来显示数据 例如 有两个类别和属于这些类别的六个项目
  • zend框架中的一个模块中的多个控制器

    你好 我是 zend Framework2 2 0 的新手 我想创建一个带有多个控制器的模块我已经从 github 下载了 Album 模块并且它工作正常 现在我想在其中添加更多控制器 下面我显示了模块中文件的文件夹结构 module Al
  • 是否可以使用 php 中的 C++ 二进制文件

    是否可以编写一些 C 或 C 代码并编译为二进制文件 然后将这些二进制文件与 php 一起使用 是否也可以使用 C 和 C 编写 php 库 如果是这样 请告诉我该怎么做 PHP 在设计上是模块化的 它由 引擎 和许多扩展组成 其中一些是必
  • 从 MySQL 列创建 PHP 数组

    mysql fetch array会给我一个获取行的数组 从一列中所有行的值生成数组的最佳方法是什么 您可以循环遍历数组并创建一个新数组 如下所示 column array while row mysql fetch array info
  • PHP 中的 Javascript“unes​​cape”

    我的图像主机有一个 Google Chrome 扩展程序 它会向我的网站发送一个 URL 该网址得到encoded通过 JavaScript 的escape method 编码的 URLescape看起来像这样 http 253A 4 bp
  • 如何在 MySQL 中存储工作日列表?

    我正在使用编写一个应用程序PHP我需要存储一个独特的工作日列表MySQL 在应用程序中 我有一个数组来存储工作日 如下所示 days Wed Thu Sat 我知道我可以使用SET列 但我不想使用这种类型 因为它与我正在使用的框架 Lara
  • PHP 从表行中检索数据并将其存储到变量

    我想这些问题已经说明了一切 我的查询结果会生成与条件匹配的行 我想从每个表列中获取每个数据并将其放入一个变量中 getinfo select user firstname user middlename user lastname from
  • 用于货币转换的php脚本

    我正在寻找一个可以进行货币转换的 php 脚本 在哪里可以找到与 codeigniter 配合使用的工具 取自http www ecb europa eu stats exchange eurofxref html index en htm
  • 如何删除空 html 标签(其中包含空格和/或其 html 代码)

    需要 preg replace 的正则表达式 这个问题没有在 另一个问题 中得到回答 因为并非我要删除的所有标签都不为空 我不仅要从 HTML 结构中删除空标签 还要删除包含换行符以及空格和 或其 html 代码的标签 可能的代码是 删除匹

随机推荐

  • 如何从 Spring MVC 控制器返回对象以响应 AJAX 请求?

    我必须从控制器返回员工列表以响应 jQuery AJAX 请求 我该怎么办呢 我的控制器 RequestMapping phcheck public ModelAndView pay RequestParam empid int empid
  • Linq:在进行投影时设置属性

    我正在做一个简单的 GroupBy 获取第一个元素 但我想修改每个结果的一个属性 class M public string Name get set public int NOfPeopleWithTheSameName get set
  • React 中的 JQuery 移动组件

    React 中的 JQuery 移动组件 我对这个概念还很陌生 仍然需要弄清楚 我构建了一个用于移动目的的应用程序 并决定将其包装在 React 组件中 我的代码 索引 html
  • 加密部署 .NET 的配置文件

    我有一个从 app config 读取的 Windows 服务 我希望对某些设置进行加密 但是 我不想使用 NET 中提供的 ProtectedConfigurationProvider 类 因为它们使用 DPAPI 根据运行的计算机来加密
  • Cython 中 numpy 数组掩码的性能

    作为这个问题的后续here https stackoverflow com questions 45882166 performance of updating multiple key value pairs in a dict 感谢 M
  • Git 更改基础分支

    我有一个名为 develop 的分支 并基于该分支我创建了另一个分支 TestFeature 然后我基于 TestFeature 制作了其他分支 NewFeature 并进行了一些更改并提交 问题是我不希望文本功能中的更改出现在我的新功能分
  • 当双方都被删除时,为什么 git 给我一个“删除合并冲突”?

    我正在合并更新版本master进入我的分支 在 master 中 一个文件已被删除 我也删除了 Git 给了我以下内容 Deleted merge conflict for Lib SharedBL WebServices WebAPI A
  • 如何加载 .mat 文件并将其转换为 numpy 二维数组?

    我在 mat 文件中有一个数据 观察结果和特征 我想将其加载到 numpy 2D 数组中 我不想先将其转换为 csv 然后将 csv 加载到 numpy 中 Use scipy 的 loadmat API 文档 https docs sci
  • Javascript 中哪个更有效:while 或 for 语句?

    我最近有机会在 javascript 中进行循环 但我很困惑是否使用 for 循环或 while 语句 var i foo length while i or for var i 0 i lt foo length i 我想从 javasc
  • Struts2 正则表达式配置

    我正在创建一个 Struts2 Web 应用程序 我想要一个像这样的网址www xyz com portal orgCode signin 这个组织代码是动态的 所以我使用正则表达式 我将 struts xml 配置为
  • 仅将唯一值添加到 python 中的列表中

    我正在努力学习Python 以下是练习的相关部分 对于每个单词 检查该单词是否已在列表中 如果 该单词不在列表中 请将其添加到列表中 这是我所拥有的 fhand open romeo txt output for line in fhand
  • 合并的资源字典可以访问 App.xaml 中的资源吗?

    Can 合并资源字典 https msdn microsoft com en us windows uwp controls and patterns resourcedictionary and xaml resource referen
  • 通过 PHP 实现浏览器之间的通信

    我正在为一个学校项目构建一个简单的ajax聊天客户端 并想到了一种实现它的方法 但在我看来very繁琐的做法 1 用户A发送消息 该消息被服务器端PHP脚本接受并保存到数据库 2 用户B的浏览器定期启动服务器端PHP脚本来检查数据库中是否有
  • 当数据类属性更改时,使 React 组件重新渲染

    在我的 Typescript 应用程序中 有一个代表一些数据的类 这个类是端到端共享的 前端和后端都使用它来构造数据 它有一个名为items这是一个数字数组 class Data constructor this items 0 addIt
  • Kafka Spring Cloud Stream 的多个 @EnableBinding

    我正在尝试设置一个侦听 Kafka 的 Spring Boot 应用程序 我正在使用 Kafka Streams Binder 用一个简单的 EnableBinding EnableBinding StreamExample StreamP
  • 尝试加载使用 browserify-shim 填充的模块时,karma-browserify 会抛出错误

    我知道有类似的问题 但没有一个解决我的问题 当我跑步时karma test每次尝试加载使用 browserify shim 填充的模块时 它都会抛出以下错误 TypeError undefined is not an object eval
  • 如何隐藏迷你分析器?

    我正在使用 MVC Mini 分析器来检查应用程序特定部分的速度 并希望将其保留在那里 以防以后发生某些情况并且我可能需要检查 出了什么问题 它不是完整的日志集 但它对于了解导致页面花费很长时间的原因非常方便 因此 我的目标是隐藏它并仅在请
  • 当数量选择更改时,WooCommerce 显示总价

    我需要在数量发生变化时在产品页面中显示总价 如果您在购物车中添加产品数量 则这与购物车中的行价格相同 我对 WooCommerce 还很陌生 所以我不知道从哪里开始 但如果有人能帮助我走向正确的方向 我想我可以自己应对 所以这是我应该如何做
  • 将单个 Google 日历事件导出到 ICS?

    我目前正在研究在网页上显示多个 Google 日历的事件列表的可能性 目前 我正在使用适用于 WordPress 的 Google 日历活动插件来显示网站上的活动 开发网站位于防火墙后面 因此我无法共享链接 但我想看看是否有任何简单的方法可
  • 请解释如何创建 PHP 的 Phar 存根

    我正在尝试创建一个非常简单的 PHP CLI 应用程序 可以作为phar http php net manual book phar php从命令行文件 php myProject phar 这是我到目前为止所尝试过的 我的项目 我的项目位