是否可以在 运行 php 脚本之前通过命令行参数要求 .php 文件?
Is it possible to require a .php file via command line parameter before running a php script?
情况
我 运行 linux bash 4 兼容 shell。
我有两个文件:
A.class.php:
<?php
class A{
public static function foo(){
echo "foo\n";
}
}
A.php:
<?php
A:foo();
问题
是否可以在不编辑文件的情况下从命令行在 运行 A.php 之前要求 A.class.php?
类似于:
php --require "A.class.php" A.php
我尝试过的东西
我尝试将 <?php require 'A.class.php' ?>
与文件 A.php 的内容连接起来,然后将其通过管道传输到 php,例如:
echo "<?php require 'A.class.php'?>$(<A.php)" | php
效果很好,但有点老套,要写的东西很多。也许有一些更简单的方法来做到这一点?
您要查找的可能是 -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();
现在从命令行运行这样:
php -f init.php
输出:
foo
查看 php 的 include 语句以及 require() 和 require_once() 函数的文档,因为这些都可以一起使用来完成我认为你是正在努力。
您可以使用 -d directive=value
来设置 auto_prepend_file 指令。
php -d auto_prepend_file=A.class.php -f A.php
或者不传递脚本文件名,您可以传递 php 直接将脚本作为参数加载的代码:
php -r "require 'A.class.php'; require 'A.php';"
作为另一种选择,总是有 Unix 方式:
cat first.php second.php | php -C
通过 PHP.
在 运行 之前将脚本连接在一起
与 auto_prepend_file=
不同,这也适用于两个以上的系列脚本。 (并且不妨碍中央预加载脚本。个人已经将其用于兼容性代码。)
但是,它取决于适当的<?php ... ?>
脚本附件——打开和 在每个脚本中关闭标签(经典PHP编码风格,而不是noob/PSR-x stinted)。
(出于此类目的,可以使用 phptags -w -c *.php
修复现有的 PHP 文件。)
情况
我 运行 linux bash 4 兼容 shell。
我有两个文件:
A.class.php:
<?php
class A{
public static function foo(){
echo "foo\n";
}
}
A.php:
<?php
A:foo();
问题
是否可以在不编辑文件的情况下从命令行在 运行 A.php 之前要求 A.class.php?
类似于:
php --require "A.class.php" A.php
我尝试过的东西
我尝试将 <?php require 'A.class.php' ?>
与文件 A.php 的内容连接起来,然后将其通过管道传输到 php,例如:
echo "<?php require 'A.class.php'?>$(<A.php)" | php
效果很好,但有点老套,要写的东西很多。也许有一些更简单的方法来做到这一点?
您要查找的可能是 -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();
现在从命令行运行这样:
php -f init.php
输出:
foo
查看 php 的 include 语句以及 require() 和 require_once() 函数的文档,因为这些都可以一起使用来完成我认为你是正在努力。
您可以使用 -d directive=value
来设置 auto_prepend_file 指令。
php -d auto_prepend_file=A.class.php -f A.php
或者不传递脚本文件名,您可以传递 php 直接将脚本作为参数加载的代码:
php -r "require 'A.class.php'; require 'A.php';"
作为另一种选择,总是有 Unix 方式:
cat first.php second.php | php -C
通过 PHP.
在 运行 之前将脚本连接在一起与
auto_prepend_file=
不同,这也适用于两个以上的系列脚本。 (并且不妨碍中央预加载脚本。个人已经将其用于兼容性代码。)但是,它取决于适当的
<?php ... ?>
脚本附件——打开和 在每个脚本中关闭标签(经典PHP编码风格,而不是noob/PSR-x stinted)。(出于此类目的,可以使用
phptags -w -c *.php
修复现有的 PHP 文件。)