(PHP 4, PHP 5)
system — Execute an external program and display the output
$command
[, int &$return_var
] )
system() is just like the C version of the
function in that it executes the given
command
and outputs the result.
The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.
If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.
command
The command that will be executed.
return_var
If the return_var
argument is present, then the
return status of the executed command will be written to this
variable.
Returns the last line of the command output on success, and FALSE
on failure.
Przykład #1 system() example
<?php
echo '<pre>';
// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);
// Printing additional info
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>
Jeśli planowane jest przekazanie danych pochodzących od użytkownika do tej funkcji, powinno sie skorzystać z funkcji escapeshellarg() lub escapeshellcmd() aby mieć pewność, że użytkownicy nie mogą uruchomić dowolnych poleceń systemowych.
Informacja:
Jeśli program uruchamiany w tle zawiera tę funkcję, należy upewnić się, że wyjście tego programu jest przekierowane do pliku lub innego strumienia wyjściowego. W przeciwnym przypadku PHP zawiesi działanie aż do zakończenia działania wykonywanego programu.
Informacja: Jeśli tryb bezpieczny został włączony, możliwe jest wykonywanie programów tylko z katalogu określonego przez safe_mode_exec_dir. Ze względów praktycznych, nie można podawać elementów .. w ścieżce do pliku wykonywalnego.
Jeśli włączony jest tryb bezpieczny, ciągi zawierające polecenia są filtrowane przez funkcję escapeshellcmd(). W związku z tym, echo y | echo x staje się echo y \| echo x.