PHP's built-in function Exec,system can call system commands (shell commands) and, of course, passthru,escapeshellcmd functions.
In many cases, using PHP's Exec,system and other functions to call system commands can help us do our job better and faster. For example, the first two days of the author in bulk processing. rar files when exec helped me a lot.
Today, tidy up the common call system functions sent out to share experience with you.
Note: In order to use these two functions, the security mode in php.ini must be turned off, otherwise PHP is not allowed to invoke system commands for security reasons.
Let's take a look at the explanations of these two functions in the PHP manual:
EXEC---Execute external program
Syntax: string exec (String command [, array &output [, int &return_var]])
Description
EXEC () Executes the command given, but it does not output anything, it simply returns the last line from the result of the command, and if you need to execute a command and get all the data from the command, you can use the PassThru () function.
If a parameter array is given, the specified array will be filled with each line output by the command, note that if the array already contains some elements, exec () will append it to the array, and if you do not want this function to append elements, you can pass this array to exec () Before calling Unset ().
If there is a given parameter array and Return_var, then the return execution Status command will be written to this variable.
Note: If you allow data input from the user to be passed to this function, then you should use Escapeshellcmd () to determine that the user cannot spoof (trick) the system to execute arbitrary (arbitrary) commands.
Note: If you use this function to start a program and want to leave it in the background (background) execution, you must make sure that the output of the program is redirected to a file or some output stream, otherwise PHP will hang Until the end of the program execution.
The system---Executes the external program and displays the output
Syntax: string system (String command [, int &return_var])
Description
System () executes the command given and outputs the result. If a parameter return_var is given, the execution of the command's status code will be written to this variable.
Note: If you allow data input from the user to be passed to this function, then you should use Escapeshellcmd () to determine that the user cannot spoof (trick) the system to execute arbitrary (arbitrary) commands.
Note: If you use this function to start a program and want to leave it in the background (background) execution, you must make sure that the output of the program is redirected to a file or some output stream, otherwise PHP will hang Until the end of the program execution.
If PHP is operating as a server module, after each line is output, system () tries to automatically clear the output buffer of the Web server.
Success returns the last line of the command, which returns false if it fails.
If you need to execute a command and get all the information from the command, you can use the PassThru () function.
These two are all used to invoke the system shell command,
Different points:
Exec can return all execution results to the $output function (array), $status is the execution status 0 for success 1 for failure
Systerm does not need to provide the $output function, he is directly returning the result, the same $return_var is the execution of the status code 0 for the success of 1 for the failure
Exec Example:
Copy CodeThe code is as follows:
$a = exec ("dir", $out, $status);
Print_r ($a);
Print_r ($out);
Print_r ($status);
?>
System Example:
Copy CodeThe code is as follows:
$a = System ("dir", $out);
Print_r ($a);
Print_r ($out);
?>
system, EXCE, PassThru differences
System () outputs and returns the last line of the shell results.
EXEC () does not output results, returns the last line of the shell result, and all results can be saved to a returned array.
PassThru () only invokes the command and outputs the result of the command directly to the standard output device.
Same point: All can get status code of command execution
http://www.bkjia.com/PHPjc/325819.html www.bkjia.com true http://www.bkjia.com/PHPjc/325819.html techarticle PHP's built-in function Exec,system can call system commands (shell commands) and, of course, passthru,escapeshellcmd functions. In many cases, the use of PHP exec,system and other functions called system commands ...