首页 > 后端开发 > 正文

php执行函数 PHP按照选择执行函数的请教

2024-07-21 01:49:58 | 我爱编程网

php执行函数 PHP按照选择执行函数的请教相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php执行函数 PHP按照选择执行函数的请教信息,一起来了解一下吧!

本文目录一览:

php执行函数 PHP按照选择执行函数的请教

php执行函数

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_dump ($output);
?>

php执行函数 PHP按照选择执行函数的请教我爱编程网

LINUX+NGINX下的PHP shell_exec()函数执行linux命令 2019-08-08

LINUX+NGINX下的PHP shell_exec()函数执行linux命令

环境说明

手头有一台linux的测试服务器,最近因为业务需要,需要通过php访问另一台服务器去执行某些命令。

由于另一台服务器已经对这台服务器开了私钥,所以在终端上是可以直接执行命令而不需要输入密码的。

问题

PHP无法使用exec命令,没有任何返回值。

解决途径

1.php.ini的配置有问题。

由于php是7.0以上的版本,取消了安全模式,所以考虑PHP.ini文件配置。

打开php配置文件,里面有一行disabel_function的值,此处记录了禁止运行的函数,在里面讲exec和shell_exec,system等函数删除。

2.权限问题

修改以后PHP可以运行部分命令了,但是部分外部程序和命令仍然不能运行。使用sudo返回失败。

于是运行“whoami”查看,环境下php-frm的运行角色是www。

于是修改sudoers文件。

vi /etc/sudoers

将www添加到

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

下面:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

www ALL=(ALL) NOPASSWD:ALL

然后找到Default requiretty这一行,把他注释掉

# Default requiretty

ps:意思就是sudo默认需要tty终端,注释掉就可以在后台执行了.

重启nginx和php-fpm

service nginx restart

service php-fpm restart

这样,PHP就可以在需要执行外部命令的时候使用sudo利用root身份执行命令,而不会报错或者执行失败了!

php执行函数 PHP按照选择执行函数的请教

PHP按照选择执行函数的请教

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP按照选择执行函数的请教的相关内容。

两个函数完全可以写成一个函数:

function del( $t = 1 ) {
 if ( $t == 1 ) { //函数参数是1
     //删除图片
   } else { //否则
    // 删除路径
  }    
}  
//接下来是函数的调用
$T = $_GET['t']; //取得url的get参数
del( $T ); //调用函数

然后在按钮方面, 首先, 按钮的type属性改成button

然后给按钮添加一点击事件,比如:

<input type="button" value="删除图片" onclick="document.location='del.php?t=1'">
<input type="button" value="删除路径" onclick="document.location='del.php?t=2'">

以上就是php执行函数 PHP按照选择执行函数的请教全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php执行函数 PHP按照选择执行函数的请教”相关推荐
php中哪些函数不可以执行系统命令
php中哪些函数不可以执行系统命令

php中哪些函数不可以执行系统命令php中有2种函数是不可以执行系统命令的。根据查询相关公开信息显示,2种函数是assert,exception=0时,Warning:assert():assert(1==2)。Deprecated:assert():Callingassert()withastringargumentisdeprecated。php禁用函数删除后还是提示运行动态加载

2024-07-14 17:07:43
常用php函数 php 常用bc函数
常用php函数 php 常用bc函数

php常用bc函数探索PHP中的强大计算工具:bc函数集在PHP的世界里,bcadd就像是一位精密的计算器,它为我们提供了两个任意精度数字之间无比精准的加法运算,无论是微小的数字还是天文数字,都能轻松应对。bcsub则扮演着减法专家的角色,确保每一个细微的减法操作都能得到准确的结果,无论是商业计算还是科学计算,它都能胜任有余。乘法任务就交给bc

2024-07-18 09:39:37
php函数大全 PHP处理数组常用的几个函数
php函数大全 PHP处理数组常用的几个函数

php随机数函数在PHP中,随机数(RandomNumber)是指一组伪随机数(Pseudo-randomNumber),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。以下是一些PHP中常用的生成随机数的函数:1、rand()函数:生成一个指定范围内的随机整数。例如

2024-07-14 08:20:17
请问PHP构造函数的含义 php this和self的区别
请问PHP构造函数的含义 php this和self的区别

PHP的其他方面PHP在数据库方面的丰富支持,也是它迅速走红的原因之一,它支持下列的数据库或是数据文件:Adabas、D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MicrosoftSQLServer、·MySQL、Solid、Sybase、Oracle、PostgreSQL而在Internet上它也支持了相当多的通讯协议(prot

2024-07-14 11:50:21
php函数 用自己的语言说出php中数组的常用函数和用法?
php函数 用自己的语言说出php中数组的常用函数和用法?

用自己的语言说出php中数组的常用函数和用法?array_filter:过滤数组中的无效元素,可以使用回调函数过滤array_map:使用回调函数依次处理所有元素implode:将一维数组转为特定符号隔开的字符串,explode: 将特定符号隔开的字符串转为一维数组sort/ksort:将数组进行升序排序array_unique:将数组元素去重array

2024-07-13 13:08:22
php如何调用函数
php如何调用函数

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-07-17 09:05:21
count函数php php获取数组长度的方法(有实例)
count函数php php获取数组长度的方法(有实例)

php中count()函数的作用?PHP中count()函数表示:计算数组中元素的个数,或者计算对象中属性的个数;计算数组元素个数示例:&lt;?php$arr = array("baidu", "google", "soso");echo count($arr);//结果:3?&gt;计算对象中的属性个数示例:&lt;?phpclass Person{    publi

2024-07-20 12:41:04
程序总是从main()函数开始执行,是对的吗?
程序总是从main()函数开始执行,是对的吗?

JAVA,在eclipse中,每个类运行时都是从主程序开始。在一个类中,调用其它的类,并对其进行实一个project只能从一个main函数开始,运行完这个main函数就结束了,你如果写了多个main函数则取决于你在哪个文件开始运行,实例化不是让这个类开始运行,而是给这个类的对象在heap里面分配了空间,初始化了变量,相当于一个容器装载了这个对象的信息,在main里面你可以调用这个类的共有方法

2024-06-17 23:42:42