What are the differences of system(), exec() and shell_exec() in PHP?

53,192

exec — Execute an external program

system — Execute an external program and display the output

shell_exec — Execute command via shell and return the complete output as a string

so if you don't need the output, I would go with exec.

Further details:

Share:
53,192
Googlebot
Author by

Googlebot

intentionally left blank

Updated on May 24, 2020

Comments

  • Googlebot
    Googlebot almost 4 years

    It is possible to run an external command by three PHP functions of

    system();
    exec();
    shell_exec();
    

    but what are their differences? In spite of their specific applications, in most cases, the can be equally used. I am curious to know which is preferred one when they can be equally used. For example, for unzipping a file or compressing a folder (with tar command), which one is preferred (probably from performance point of view)?

    UPDATE: In another question, I found a very useful link describing different aspects for these functions. I share the link here, as other may use to better understand security issues and other aspects.

  • alanaktion
    alanaktion over 8 years
    exec() returns the last line of output, so if you're calling a simple program that just outputs a single value like whoami or pwd, exec() is perfect.