问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php执行函数

发布网友 发布时间:2022-04-06 01:51

我来回答

5个回答

懂视网 时间:2022-04-06 06:12

php中exec和system的区别:system执行外部程序并且显示输出,它可以输出和返回结果;exec执行外部程序不输出结果而是返回结果的最后一行,但如果添加第二个参数array,也可以得到完整的结果。

推荐:《PHP视频教程》

在PHP中调用外部命令,可以用exec 及 system来实现:

system() ---执行外部程序,并且显示输出

原型:

string system (string command [, int return_var])

system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。

返回结果

成功返回0,

失败(命令不存在等原因) 返回 非0值

exec() ---执行外部程序

原型:

string exec (string command [, string array [, int return_var]])

exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array 可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二 个参数时,才可以用第三个参数,用来取得命令执行的状态码。

例子:

exec("/bin/ls -l"); 
exec("/bin/ls -l", $res); 
exec("/bin/ls -l", $res, $rc);

热心网友 时间:2022-04-06 03:20

PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
<?php
exec("dir",$output);
print_r($output);
?>

2)system()
原型: string system ( string $command [, int &$return_var ] )
说明: system和exec的区别在于,system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
<?php
system("pwd");
?>

3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
<?php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?>

4)shell_exec()
原型: string shell_exec(string $cmd)
说明: 直接执行命令$cmd
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
防超时的处理方法:
当执行命令的返回结果非常庞大时,可以需要考虑将返回结果输出至其他文件,再另行读取文件,这样可以显著提高程序执行的效率。
如果要执行的命令要花费很长的时间,那么应该把这个命令放到系统的后台去运行。但在默认情况下,
象system()等函数要等到这个命令运行完才返回(实际上是在等命令的输出结果),
这肯定会引起PHP脚本的超时。解决的办法是把命令的输出重定向到另外一个文件或流中,如:
<?php
system("/usr/local/bin/order_proc > /tmp/abc ");
?>
<?
$filename=time().".data";
exec("/app/gm/gm_center/test/hello.py > $filename",$output);
var_mp ($output);
?>

热心网友 时间:2022-04-06 04:38

<?php
class my{
 function funa(){
 }
 function funb(){
 }
 function data($func){
  if($func == 'funa')
   return $this->funa();
  else
   return $this->funb();
 }
}
$php = new my();
echo $php->data('funa');

热心网友 时间:2022-04-06 06:13

和类全部放在一个php文件中,追问能具体点吗

热心网友 时间:2022-04-06 08:04

function hello(){
echo 'Hello';
}
$hs='hello';
$hs();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 php system和exec的区别 php什么时候用静态方法 PHP 静态方法调用真的会比普通类方法快 4 倍吗 关于PHP静态方法调用和实例化类调用的区别 php 一般什么时候用静态方法 什么时候该使用PHP的static属性和方法 php静态方法与非静态方法在性能上有什么区别 php:static静态变量和普通变量的区别分析 php中static 静态变量和普通变量的区别是什么呢? php static 方法有什么好处 php中static 静态变量和普通变量的区别 php类中有静态方法和非静态的,我想问的是,什么时候用静态方法,静态方法和普通方法有什么不同? 如何运用php函数mkdir创建多级目录 PHP 删除目录下的文件 php 删除多个文件 php实现删除空目录的方法 如何删除多级目录 PHP怎样用迭代法删除级联目录? PHP删除目录及目录下所有文件的方法详解 PHP关于删除文件夹下面的所有子目录(包括文件夹) php中popen,exec,system,passthru到底有多大区别 嵌入式里面的system,exec是什么?_? php中的system函数和exec函数怎么用? 在php中使用system()和exec()函数去处理windows下一个R脚本,为什么一直不行? 我要在php中调用system或者exec执行一个程序 PHP怎么运行EXEC文件? php(exec,system)外部程序执行问题?!! PHP中exec函数和shell_exec函数的区别 PHP在linux下执行exec和system函数,返回值为126代表什么意思? php system函数执行系统命令与直接在终端中执行命令有什么区别 PHP问题!使用exec或者system后CPU马上就飚升到100% PHP exec怎么用,里面的3个参数潞河设置 php网站不显示警告,要怎么办 php+mysql不想显示这些警告信息怎么办 php如何隐藏错误 PHP的请教一个小问题。为什么会报警告呢?我要怎么处理才不会报错? php :file_get_contents() 参数是个不存在的地址的话怎么不显示警告 如何屏蔽PHP中的Notice信息 - PHP进阶讨论 sublime编译php 怎么去掉警告 PHP的类名和方法名还有属性名能一样么?