system will execute a program and output the result to the browser. passthru is basically the same, but is binary safe.
exec will execute the program without outputting anything, and can optionally return the output divided into individual lines in an array which you pass to it by reference. shell_exec also executes a program without outputting anything, but its return value is the entire output of the program executed as a string.