精华内容
下载资源
问答
  • php shell_exec()vs exec()
    2021-04-29 05:57:55

    我正在努力理解shell_exec()和exec()之间的区别…

    我总是使用exec()来执行服务器端命令,何时使用shell_exec()?

    shell_exec()只是 exec()`的缩写。这似乎是用更少的参数相同的事情。

    shell_exec 以字符串形式返回所有的输出流。 exec `默认返回输出的最后一行,但可以提供所有输出作为第二个参数指定的数组。

    这是区别。注意最后的换行符。> shell_exec('date')

    string(29) "Wed Mar 6 14:18:08 PST 2013n"

    > exec('date')

    string(28) "Wed Mar 6 14:18:12 PST 2013"

    > shell_exec('whoami')

    string(9) "markn"

    > exec('whoami')

    string(8) "mark"

    > shell_exec('ifconfig')

    string(1244) "eth0 Link encap:Ethernet HWaddr 10:bf:44:44:22:33 n inet addr:192.168.0.90 Bcast:192.168.0.255 Mask:255.255.255.0n inet6 addr: fe80::12bf:ffff:eeee:2222/64 Scope:Linkn UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1n RX packets:16264200 errors:0 dropped:1 overruns:0 frame:0n TX packets:7205647 errors:0 dropped:0 overruns:0 carrier:0n collisions:0 txqueuelen:1000 n RX bytes:13151177627 (13.1 GB) TX bytes:2779457335 (2.7 GB)n"...

    > exec('ifconfig')

    string(0) ""

    更新: 我真的应该解释最后一个。望着这个答案多年以后,连我都不知道为什么这个空白出来了! Daniel解释了这一点 - 这是因为exec只返回最后一行,ifconfig `的最后一行恰好是空白的。

    未经作者同意,本文严禁转载,违者必究!

    更多相关内容
  • shell_exec() shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体。如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出。例如,清单 1 显示了如何使用反撇号...
  • 主要介绍了PHP中exec函数和shell_exec函数的区别,这两个函数是非常危险的函数,一般情况都是被禁用的,当然特殊情况下也会使用,需要的朋友可以参考下
  • PHP中exec函数和shell_exec函数的区别,execshell_exec这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。假如脚本路径下有如下文件:复制...

    PHP中exec函数和shell_exec函数的区别,execshell_exec

    这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。

    假如脚本路径下有如下文件:

    复制代码 代码如下:

    -bash-4.1# ll

    总用量 12

    -rw-rw-r–. 1 www web 133 7月 16 15:00 a.php

    -rw-r–r–. 1 lee web 59 2月 29 17:05 b.php

    -rw-r–r–. 1 lee web 81 3月 8 17:00 c.php

    exec例子

    复制代码 代码如下:

    /**

    * exec与shell_exec的区别

    * 琼台博客

    */

    $data = exec(‘/bin/ls -l’);

    echo ‘

    ';

    print_r($data);

    echo '

    ‘;

    ?>

    ?php

    执行结果

    复制代码 代码如下:

    -rw-r–r–. 1 lee web 81 Mar 8 17:00 c.php

    shell_exec例子

    复制代码 代码如下:

    /**

    * exec与shell_exec的区别

    * 琼台博客

    */

    $data = shell_exec(‘/bin/ls -l’);

    echo ‘

    ';

    print_r($data);

    echo '

    ‘;

    ?>

    ?php

    执行结果

    复制代码 代码如下:

    total 12

    -rw-rw-r–. 1 www web 139 Jul 16 2012 a.php

    -rw-r–r–. 1 lee web 59 Feb 29 17:05 b.php

    -rw-r–r–. 1 lee web 81 Mar 8 17:00 c.php

    所以平时使用exec函数的童鞋注意了,如果你需要获取全部返回信息,就应该使用shell_exec函数,当然,如果命令执行结果只有一行返回信息,那么使用哪个都无所谓。

    linux 中php执行shell_exec函数

    shell_exec(“/usr/local/bin/pdf2swf /home/xiazai/03.pdf -o /home/xiazai/1.swf; /usr/local/bin/jpeg2swf /home/xiazai/2.jpg -o /home/xiazai/2.swf “);

    每条命令后加上分号

    PHPini开启EXEC函数怎开启

    首先是 要关掉 安全模式 safe_mode = off

    然后在看看 禁用函数列表

    disable_functions = proc_open, popen, exec, system, shell_exec, passthru

    这里要把 exec 去掉

    重启 apache 就OK了

    www.bkjia.comtrueTechArticlePHP中exec函数和shell_exec函数的区别,execshell_exec 这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数…

    展开全文
  • 在Windows平台下安装PHP后,在使用PHP的execshell_exec等函数时,经常会遇到报错:unable to fork...,这实际上是因为PHP对cmd.exe没有足够的权限引起的。
  • I'm struggling to understand the difference between shell_exec() and exec() ... 我正在努力了解shell_exec()

    本文翻译自:PHP shell_exec() vs exec()

    I'm struggling to understand the difference between shell_exec() and exec() ... 我正在努力了解shell_exec()exec()之间的区别...

    I've always used exec() to execute server side commands, when would I use shell_exec() ? 我一直使用exec()执行服务器端命令,何时使用shell_exec()

    Is shell_exec() just a shorthand for exec() ? shell_exec()只是exec()的简写吗? It seems to be the same thing with fewer parameters. 较少的参数似乎是同一件事。


    #1楼

    参考:https://stackoom.com/question/TlR6/PHP-shell-exec-与exec


    #2楼

    Here are the differences. 这是区别。 Note the newlines at the end. 注意最后的换行符。

    > shell_exec('date')
    string(29) "Wed Mar  6 14:18:08 PST 2013\n"
    > exec('date')
    string(28) "Wed Mar  6 14:18:12 PST 2013"
    
    > shell_exec('whoami')
    string(9) "mark\n"
    > exec('whoami')
    string(8) "mark"
    
    > shell_exec('ifconfig')
    string(1244) "eth0      Link encap:Ethernet  HWaddr 10:bf:44:44:22:33  \n          inet addr:192.168.0.90  Bcast:192.168.0.255  Mask:255.255.255.0\n          inet6 addr: fe80::12bf:ffff:eeee:2222/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:16264200 errors:0 dropped:1 overruns:0 frame:0\n          TX packets:7205647 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:13151177627 (13.1 GB)  TX bytes:2779457335 (2.7 GB)\n"...
    > exec('ifconfig')
    string(0) ""
    

    Note that use of the backtick operator is identical to shell_exec() . 注意, 反引号运算符的使用与shell_exec()相同。

    Update: I really should explain that last one. 更新:我真的应该解释最后一个。 Looking at this answer years later even I don't know why that came out blank! 多年以后,看着这个答案,我什至不知道为什么会显得空白! Daniel explains it above -- it's because exec only returns the last line, and ifconfig 's last line happens to be blank. Daniel在上面进行了解释-这是因为exec仅返回最后一行,而ifconfig的最后一行碰巧是空白。


    #3楼

    A couple of distinctions that weren't touched on here: 这里没有涉及的几个区别:

    • With exec(), you can pass an optional param variable which will receive an array of output lines. 使用exec(),您可以传递一个可选的param变量,该变量将接收输出行数组。 In some cases this might save time, especially if the output of the commands is already tabular. 在某些情况下,这可能节省时间,尤其是在命令输出已经以表格形式显示的情况下。

    Compare: 相比:

    exec('ls', $out);
    var_dump($out);
    // Look an array
    
    $out = shell_exec('ls');
    var_dump($out);
    // Look -- a string with newlines in it
    

    Conversely, if the output of the command is xml or json, then having each line as part of an array is not what you want, as you'll need to post-process the input into some other form, so in that case use shell_exec. 相反,如果命令的输出是xml或json,则不需要将每一行作为数组的一部分,因为您需要将输入后处理为其他形式,因此在这种情况下,请使用shell_exec 。

    It's also worth pointing out that shell_exec is an alias for the backtic operator, for those used to *nix. 还值得指出的是,shell_exec是backtic运算符的别名,对于* nix而言是这样的。

    $out = `ls`;
    var_dump($out);
    

    exec also supports an additional parameter that will provide the return code from the executed command: exec还支持一个附加参数,该参数将提供已执行命令的返回代码:

    exec('ls', $out, $status);
    if (0 === $status) {
        var_dump($out);
    } else {
        echo "Command failed with status: $status";
    }
    

    As noted in the shell_exec manual page, when you actually require a return code from the command being executed, you have no choice but to use exec. 如shell_exec手册页所述,当您实际上需要从正在执行的命令中返回代码时,您别无选择,只能使用exec。


    #4楼

    shell_exec returns all of the output stream as a string. shell_exec以字符串形式返回所有输出流。 exec returns the last line of the output by default, but can provide all output as an array specifed as the second parameter. exec默认情况下返回输出的最后一行,但是可以将所有输出作为指定为第二个参数的数组提供。

    See 看到


    #5楼

    shell_exec - Execute command via shell and return the complete output as a string shell_exec通过shell执行命令并以字符串形式返回完整的输出

    exec - Execute an external program. exec执行一个外部程序。

    The difference is that with shell_exec you get output as a return value. 区别在于,使用shell_exec可以将输出作为返回值。

    展开全文
  • execshell_exec函数在PHP中的区别是什么发布时间:2020-12-31 17:11:47来源:亿速云阅读:115作者:Leah这期内容当中小编将会给大家带来有关execshell_exec函数在PHP中的区别是什么,文章内容丰富且以专业的角度...

    exec与shell_exec函数在PHP中的区别是什么

    发布时间:2020-12-31 17:11:47

    来源:亿速云

    阅读:115

    作者:Leah

    这期内容当中小编将会给大家带来有关exec与shell_exec函数在PHP中的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。

    假如脚本路径下有如下文件:

    复制代码 代码如下:

    -bash-4.1# ll

    总用量 12

    -rw-rw-r--. 1 www web 133  7月 16 15:00 a.php

    -rw-r--r--. 1 lee web  59  2月 29 17:05 b.php

    -rw-r--r--. 1 lee web  81  3月  8 17:00 c.php

    exec例子

    复制代码 代码如下:

    /**

    * exec与shell_exec的区别

    * 琼台博客

    */

    $data = exec('/bin/ls -l');

    echo '

    ';

    print_r($data);

    echo '

    ';

    ?>

    执行结果

    复制代码 代码如下:

    -rw-r--r--. 1 lee web  81 Mar  8 17:00 c.php

    shell_exec例子

    复制代码 代码如下:

    /**

    * exec与shell_exec的区别

    * 琼台博客

    */

    $data = shell_exec('/bin/ls -l');

    echo '

    ';

    print_r($data);

    echo '

    ';

    ?>

    执行结果

    复制代码 代码如下:

    total 12

    -rw-rw-r--. 1 www web 139 Jul 16  2012 a.php

    -rw-r--r--. 1 lee web  59 Feb 29 17:05 b.php

    -rw-r--r--. 1 lee web  81 Mar  8 17:00 c.php

    所以平时使用exec函数的童鞋注意了,如果你需要获取全部返回信息,就应该使用shell_exec函数,当然,如果命令执行结果只有一行返回信息,那么使用哪个都无所谓。

    上述就是小编为大家分享的exec与shell_exec函数在PHP中的区别是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

    展开全文
  • 我很难理解shell_exec()和exec()之间的区别我一直习惯使用exec()执行服务器端命令,但不知道shell_exec()什么时候使用?shell_exec()是否只是exec()的一个速记?参数较少似乎是一样的。区别:shell_exec将所有输出流...
  • shell_exec是backtick操作符的别名,用于*nix。如果命令失败,则返回NULL,并且这些值对于错误检查不可靠。语法:string shell_exec( $cmd )参数:此函数接受单个参数$cmd,该参数用于保存将要执行的命令。返回值:...
  • 今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,老是没法生成PDF文件,使用var_dump()打印返回值,结果是null。但是检查代码并无什么问题啊?执行程序的目录是D:\Program Files\wkhtmltopdf\bin\...
  • 如何在php上启用shell_execexec

    千次阅读 2021-03-23 20:57:55
    (在网上有一些提及,但没有一个解决方案有效.)我希望能够从PHP脚本中使用shell_execexec.含义,使用: exec("echo hello world"); ?>要么 shell_exec("echo hello world"); ?>...
  • PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论PHP命令行。PHP Command Line Interface (CLI) Server ...到 V4.3.0 时,已经受到完整支持并且默认启用。shell_exec()shell...
  • 首先,感谢Havenard为您的片段 – 它帮助了很多!Havenard的代码的一个稍微修改版本,我觉得有用。
  • 最初的调用命令: shell_exec("php /data/web/code/think MyCronJob") 正常情况下 MyCronJob 执行...safe_mode_exec_dir 该参数指定了只有在特定目录中的外部程序才可以被执行 disable_functions 禁用的函数 2、
  • 在执行的时候发现报错: shell_exec() has been disabled for security reason
  • 在做第三方登录的时候,注册时头像下载比较耗时,所以改为了异步 shell_exec 执行wget不过shell_exec执行成功无输出 和 执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。在php手册的评论中找到了区分...
  • 说明string shell_exec( string $cmd)本函数同 执行操作符。参数cmd要执行的命令。返回值命令执行的输出。如果执行过程中发生错误或者进程不产生输出,则返回 NULL。Note:当进程执行过程中发生错误,或者进程不产生...
  • 我使用shell_exec方法从PHP调用test.sh.$my_url="http://www.somesite.com/";$my_refer="http://www.somesite.com/";$page = shell_exec('/tmp/my_script.php $my_url $my_refer');但是,命令行脚本说它只收到一个...
  • 我正在使用我编写的包装类运行第三方脚本,该类调用shell_exec()和管道到我稍后使用php代码解析的文件中.我应该提到这是有效的,但是...我一直在阅读有关shell_exec()和exec()的几个问题,似乎通过将输出参数传递给exe...
  • 1、exec—执行一个外部程序 在exec中第一个参数后添加 2>&1。如果python运行错误,将会把出错信息传递给$arr变量, 然后就可以将arr变量的值输出到web端,以便差错。第三个参数执行的状态,0表示成功,其他...
  • shell中运行以下命令可提供以下结果:$/usr/local/bin/siege -c30 -t30s -f urls.txt.....HTTP/1.1 200 0.10 secs: 11246 bytes ==> GET /*******.htmlHTTP/1.1 200 0.11 secs: 11169 bytes...
  • $out = shell_exec("python *.py"); print($out); out为空无输出,但其他另一个py文件可正常运行有输出。 php页面也无错误提示,在页面前加erro_reporting(E_ALL),也无反应。 检查py文件并与前述python代码比较...
  • CTF-shell_exec-Wp

    2020-10-29 20:31:38
    CTF-shell_exec-Wp 题目是这样的,ping命令测试 查看html源代码看到一个tip 解题过程一 经过大量测试目的其实就是执行cat /flag 但是发现有过滤了空格,这里我们$IFS$9代替 我是利用echo curl ...
  • exec("python cmd.py",$str); var_dump($str); 在cmd.py文件输出中含有中文,结果显示的是下图所示: 经过百度和csdn搜索很多博主说可以通过设置预定编码然后可以解决,比如先在执行命令前添加编码后执行: $...
  • 这2个函数是同步阻塞的,如果有问题就会一直卡在那,也不会报错。我看目录直接在shell里面执行是ok的,但php调用exec就卡在那,没排查到什么问题,就用定时函数等待了
  • 查看php.ini 是否禁用了这些函数: 找到disable_functions = 把exec, system,exec_shell去掉,用到哪个去哪个; 重启php服务,这一步很重要
  • 缺少 shell_exec 函数 如果shell_exec被禁用,系统的部分自动化功能将会受到影响,比如自动化安装、自动化任务、清缓存等,但是并不妨碍系统基础功能的运行。 缺少 proc_open 函数 如果proc_open被禁用,系统的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 210,476
精华内容 84,190
关键字:

shell_exec

友情链接: bfncke.rar