• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php执行外部命令exec()system()passthru()

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

php 执行部命令exec() system() passthru()

通常用c写一个外部小程序,然后使用上述命令可以在php中调用

1. exec()

string exec ( string $command [, array &$output [, int &$return_var ]] )

$command要执行的外部程序

$output 会把程序中所有的输出结果输出到该数组中;如c中的printf(); 可以利用这个往外部返多个值;

$return_var 该程序执行结果的返回值;比对 C程序中 的return 0; 

string 返回值即程序输出的最后一个行,即最后一个printf()

如下示例:

test.c

#include <stdio.h>

int main(int argc, const char * argv[]) {
    if (argc==2) {
        printf("this is parm %s\n",argv[1]);
    }
    printf("Hello, World!\n");
    return 0;
}

 

编译test.c到可执行文件

cocoaPro:Desktop cocoajin$ gcc -o test main.c 
cocoaPro:Desktop cocoajin$ ./test ppp
this is parm ppp
Hello, World!
cocoaPro:Desktop cocoajin$ ls |grep test
test
cocoaPro:Desktop cocoajin$ 

test.php

<?php 
        
        echo "hello world from php <br>";
exec("./test 'aaa'", $outArry,$dret);

        echo $dret.'<br>';

        echo var_dump($outArry);
    
 ?>

访问test.php输出

hello world from php 
0
array(2) { [0]=> string(16) "this is parm aaa" [1]=> string(13) "Hello, World!" }

 

注意上面的test 程序,如果php的环境是linux的,就要用linux下的gcc编译,winddows环境,就要用win下的gcc编译;

  在linux下编译的test程序,在win下是不能用的

 

2.system()

string system ( string $command [, int &$return_var ] )

$command 要执行的命令

$return_var 程序的返回值;即C程序中的return值0;

string 函数返回值是,程序执行的最后一行输出;

 

3. passthru()

void passthru ( string $command [, int &$return_var ] )

$command 要执行的命令

$return_var 程序的返回值;即C程序中的return值0;

无返回值;

 

总结:

这几个命令功能真强大,php结合C,可以做很多事情了!

参考:http://php.net/manual/zh/function.exec.php

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP显示信息到控制台console发布时间:2022-07-10
下一篇:
php使用数据库的并发问题(乐观锁与悲观锁)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap