在运行php脚本之前,是否可以通过命令行参数要求一个.php文件? 处境
我正在使用与bash4兼容的shell运行linux 我有两个文件: A.class.php:在运行php脚本之前,是否可以通过命令行参数要求一个.php文件? 处境,php,linux,bash,command-line-interface,Php,Linux,Bash,Command Line Interface,我正在使用与bash4兼容的shell运行linux 我有两个文件: A.class.php: <?php class A{ public static function foo(){ echo "foo\n"; } } 我试过的东西 我尝试将与文件A.php的内容连接起来,然后通过管道将其传输到php,如: echo "<?php require 'A.class.php'?>$(<A.php)" | php echo“$(您要查
<?php
class A{
public static function foo(){
echo "foo\n";
}
}
我试过的东西
我尝试将
与文件A.php的内容连接起来,然后通过管道将其传输到php,如:
echo "<?php require 'A.class.php'?>$(<A.php)" | php
echo“$(您要查找的可能是-f开关
php -f phpFileToParseAndRunFirst.php
您始终可以创建一个简短的PHP文件以首先运行,该文件满足以下要求:
<?php
require ('pathToRequiredPhpFile1.php');
require ('pathToRequiredPhpFile2.php');
// Or even use the include to bring a .php file into the currently running script file as if it were a part of the script.
这里是一个更好的示例。在您的a.class.php所在的目录中,使用以下代码创建一个简单的php初始化文件(init.php):
<?php
include "A.class.php";
$x = new A;
$x->foo();
您可以使用-d指令=值
来设置指令
php -d auto_prepend_file=A.class.php -f A.php
或者,您可以通过php代码直接作为参数加载脚本,而不是传递脚本文件名:
php -r "require 'A.class.php'; require 'A.php';"
作为另一种选择,Unix方式始终存在:
它在通过PHP运行之前将脚本连接在一起
- 与
auto\u prepend\u file=
不同,这也适用于两个以上的系列脚本。(并且不会妨碍中央预加载脚本。个人已经将其用于兼容代码。)
- 但是,它取决于每个脚本中的适当的
脚本附件-open和close标记(经典的PHP编码风格,而不是noob/PSR-x)
(出于这种目的,您可以使用它来修复现有的PHP文件。)
php-B'@EtanReisner这不起作用!php解析错误:语法错误,命令行中的文件结尾意外,第1行的开始代码
。顺便说一句,很抱歉我不得不更改文件名。另一个预包含另一个脚本的选项是php-d“auto_prepend_file=before.php”"main.php
@mario这看起来很有希望!我会尽快测试它,并告诉你它是否有效。非常感谢!@mario这很有效。你想自己创建一个答案,还是我接受VolkerK的答案可以?#repmatters抱歉,创建一个新文件并不能回答我的问题。从标题:通过命令行参数er
。您能更具体地介绍一下-f开关吗?据我所知,我将传递A.class.php作为-f
的参数,但如何传递我要运行的文件?没有编辑任何文件。创建了一个名为init.php的新文件作为引导文件,php应该执行该文件以加载所需文件。我还演示了include和sug的使用做手势查看require()和require_once()。另一个建议是使用composer。有一个开关-R可能适合您(我自己没有使用过),在这里您可以通过管道导入要执行的php脚本文件。祝您好运……)
php -d auto_prepend_file=A.class.php -f A.php
php -r "require 'A.class.php'; require 'A.php';"
cat first.php second.php | php -C