PHP中呼叫外部程式,及其引數與返回值

2021-05-23 16:44:09 字數 1404 閱讀 2920

用了一下午,終於弄明白了如何在php**中呼叫外部程式。

在php中呼叫外部程式主要有兩個函式,system和exec。

system 的原型為string system(string command [, int $return_var])。system本身具有列印命令執行輸出的功能,也就是說,程式中的輸出printf()php頁面中顯示。如果程式成功執行,則system的返回值為程式輸出的最後一行,如果執行失敗,返回false。如果呼叫程式有返回值,則返回值存放在$return_var中。

示例程式如下,以linux平台為例。

c程式**:

#include "stdio.h"

#include "stdlib.h"

int main(int argc, char *argv)

int r,s;

r=atoi(argv[1]);

s=r*r;

printf("ok/n");

printf("haha/n");

return s;

}編譯生成a.out檔案。

php頁面**:

<?php

echo("congratulations!/n");

$r=3;

$s=system("/usr/local/apache/htdocs/php/a.out $r",$ret);

echo("s is $s  ");

echo("ret is $ret  ");

?>

執行結果,在頁面中顯示為:

congratulations! ok haha s is haha ret is 9

exec的函式原型為string exec(string command [, array $output [, int $return_var]])。exec本身沒有列印程式輸出的功能。如果程式執行成功,則exec的返回值為程式輸出的最後一行,並且所有的程式輸出以陣列形式存放在$output中。如果呼叫程式有返回值,則返回值存放在$return_var中。

示例程式如下,c程式同上。

php**為:

<?php

echo("congratulations!/n");

$r=3;

$s=exec("/usr/local/apache/htdocs/php/a.out $r",$arr,$ret);

echo("s is $s  ");

echo("arr[0] is $arr[0]  ");

echo("arr[1] is $arr[1]  ");

echo("ret is $ret  ");

?>

執行結果在頁面顯示為

congratulations! s is haha arr[0] is ok arr[1] is haha ret is 9

PHP中呼叫外部程式,及其引數與返回值

在php中呼叫外部程式主要有兩個函式,system和exec。system的原型為string system string command int return var system本身具有列印命令執行輸出的功能,也就是說,程式中的輸出printf php頁面中顯示。如果程式成功執行,則system...

Python呼叫(執行)外部程式引數問題

shellexecute hwnd,op file params dir bshow 其引數含義如下所示。hwnd 父視窗的控制代碼,如果沒有父視窗,則為0。op 要進行的操作,為 open print 或者為空。file 要執行的程式,或者開啟的指令碼。params 要向程式傳遞的引數,如果開啟的...

php 呼叫系統命令 執行外部程式

等待外部程式執行完畢的有 system command.path logs 重定向輸出到logs中 exec popen 不需要等待外部程式執行 使用以下 linux環境中 cmd nohup cmd.buildlogs.2 1 system cmd windows環境中 runcommand e ...