Home  >  Article  >  Backend Development  >  What should I do if system() in php does not return output?

What should I do if system() in php does not return output?

王林
王林Original
2021-09-27 14:41:232362browse

Solution to the problem that system() in php does not return output: redirect the standard error to the standard output by appending [2 >& 1] to the command, for example [exec('some_command -- option 2>& 1', $output, $ret);].

What should I do if system() in php does not return output?

The operating environment of this article: windows10 system, php 7, thinkpad t480 computer.

Recently when I was working, I accidentally discovered that executing common commands like 'ls', exec() can work normally, for example:

 exec('ls',$输出,$ retval); 
 var_dump($ output,$ retval); 
 // $ output包含文件名数组,retval === 0

But when I try to execute another program, I Unable to get the output, as follows:

exec('some_command --a_parameter',$ output ,$ retval); 
 var_dump($ output,$ retval); 
 // $ output包含一个空数组,结束$ retval === 0

When executing the command directly from the command line, some lines will be printed. I know that the command execution was successful and I can see the results (some file updates, data additions, etc.), but I No output is visible.

The exec() function will only capture standard output. I'm not sure that standard error is always sent to the apache error log, but it seems to be possible.

If you don’t need to use a unix system, we can actually redirect the standard error to the standard output by appending 2>& 1 to the command, so that the problem can be solved, for example:

 exec('some_command --option 2>& 1',$ output,$ ret);

Recommended learning: php training

The above is the detailed content of What should I do if system() in php does not return output?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn