从命令行调用PHP函数

2021/01/07 09:21 · php ·  · 0评论

我有一个名为address.php的文件,其中包含一些功能。我想从命令行调用该文件中的特定功能。怎么样?

该函数的名称称为exportAddress,该函数需要一个参数。

通过使用-r参数,您可以内联运行脚本。

php -r "require 'address.php'; exportAddress(12345);"

没有其他选择。PHP中的函数只能由PHP脚本调用。

采用

php  -r 'include  "/var/www/test/address.php";exportAddress(1);'

其中 "/var/www/test/arr.php"的文件名(包括路径)是该文件exportAddress()中的函数。

将此添加到文件“ /var/www/test/address.php”的顶部...

foreach ($argv as $i=>$arg )
{
    if ( $arg == "exportAddress" )
    { 
        exportAddress($argv[$i+1]);
    }
}

然后从命令行执行:

php /var/www/test/address.php exportAddress 12345

您可以将文件“ somefile.php”组织如下:

function func1(){....}
function func2(){....}
function func3(){....}
....
foreach ($argv AS $arg){
    function_exists($arg) AND call_user_func($arg);
}

然后从命令行或Linux cronjob,运行以下命令:

php /path/to/somefile.php arg1 arg2 arg3 ...

为了扩展Samer Ata和Simon Rodan的答案,您可以使用以下代码来执行带有任意数量参数的任何函数:

if(isset($argv[1]) && function_exists($argv[1])) {
  $parameters = array_slice($argv, 2);
  call_user_func($argv[1], ...$parameters);
}

这是通过从中删除脚本和函数名$argv,然后使用传播运算符(...)将数组中的每个元素解释为的参数来完成的call_user_func

PHP 5.6及更高版本支持该运算符(而5.5可以使用函数来完成某些事情)。您可以在官方PHP文档中阅读有关它的更多信息为了完整起见,这也称为参数解压缩。

从PHP 5.1.0开始(在Windows上为7.1.0),可以通过运行以下命令从外壳执行PHP:

php -a

这将启动PHP的交互式shell。更多信息在这里

使用PHP的Shell,运行时可以像从文件中一样请求文件。

因此,如果先前的命令是从包含文件的文件夹中运行的:

php > require 'myFile.php';

如果在子文件夹中:

php > require 'path/to/file/myFile.php';

然后执行myFile.php中定义的任何函数。

php > myFunction(myParamsIfAny);

我猜您可以使用在同一文件中定义的任何变量,也可以要求包含所需变量的任何其他文件,尽管我没有尝试过。

本文地址:http://php.askforanswer.com/congminglingxingdiaoyongphphanshu.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!