Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行php脚本之前,是否可以通过命令行参数要求一个.php文件? 处境_Php_Linux_Bash_Command Line Interface - Fatal编程技术网

在运行php脚本之前,是否可以通过命令行参数要求一个.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“$(您要查

我正在使用与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“$(您要查找的可能是-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=
    不同,这也适用于两个以上的系列脚本。(并且不会妨碍中央预加载脚本。个人已经将其用于兼容代码。)

  • 但是,它取决于每个脚本中的适当的
脚本附件-openclose标记(经典的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