1 2 3 4 |
<span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #aa5500;">//exec ( string $command [, array &$output [, int &$return_var ]] ) </span></span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">exec</span>(<span style="box-sizing: border-box; color: #aa1111;">'C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py 2>&1'</span>, <span style="box-sizing: border-box; color: #0055aa;">$output</span>, <span style="box-sizing: border-box; color: #0055aa;">$return_val</span>);</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">print_r</span>(<span style="box-sizing: border-box; color: #0055aa;">$output</span>);<span style="box-sizing: border-box; color: #770088;">exit</span>;</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$output</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">exec</span>(<span style="box-sizing: border-box; color: #aa1111;">"C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py"</span>);</span> |
1 2 |
<span style="box-sizing: border-box; padding-right: 0.1px;">exec有3个参数,第一个是要执行的命令,第二个是参数是一个数组,数组的值是由第一个命令执行后生成的,第三个参数执行的状态,0表示成功,其他都表示失败。</span> <span style="box-sizing: border-box; padding-right: 0.1px;">查看具体信息需要使用 2>&1, 命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析。</span> |
1 2 |
<span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$output</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">shell_exec</span>(<span style="box-sizing: border-box; color: #aa1111;">"C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py"</span>);</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">print_r</span>(<span style="box-sizing: border-box; color: #0055aa;">$output</span>);<span style="box-sizing: border-box; color: #770088;">exit</span>;</span> |
1 2 |
<span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$output</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">system</span>(<span style="box-sizing: border-box; color: #aa1111;">"C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py"</span>);</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">print_r</span>(<span style="box-sizing: border-box; color: #0055aa;">$output</span>);<span style="box-sizing: border-box; color: #770088;">exit</span>;</span> |
1 2 |
<span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$output</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">passthru</span>(<span style="box-sizing: border-box; color: #aa1111;">"C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py"</span>);</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">print_r</span>(<span style="box-sizing: border-box; color: #0055aa;">$output</span>);<span style="box-sizing: border-box; color: #770088;">exit</span>;</span> |
1 2 3 |
<span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$handle</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">popen</span>(<span style="box-sizing: border-box; color: #aa1111;">"C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe test.py"</span>,<span style="box-sizing: border-box; color: #aa1111;">'r'</span>);</span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #0055aa;">$output</span> <span style="box-sizing: border-box; color: #981a1a;">=</span> <span style="box-sizing: border-box; color: #3300aa;">fread</span>(<span style="box-sizing: border-box; color: #0055aa;">$handle</span>,<span style="box-sizing: border-box; color: #116644;">4096</span>); <span style="box-sizing: border-box; color: #aa5500;">// 5</span></span> <span style="box-sizing: border-box; padding-right: 0.1px;"><span style="box-sizing: border-box; color: #3300aa;">print_r</span>(<span style="box-sizing: border-box; color: #0055aa;">$output</span>);<span style="box-sizing: border-box; color: #770088;">exit</span>;</span> |
1 2 3 4 5 |
<span style="box-sizing: border-box; padding-right: 0.1px;">说明:</span> <span style="box-sizing: border-box; padding-right: 0.1px;">1、exec和shell_exec和popen差不多。</span> <span style="box-sizing: border-box; padding-right: 0.1px;">2、system会自动输出结果,所以其实无需打印。</span> <span style="box-sizing: border-box; padding-right: 0.1px;">passthru也是会自动输出结果,但不会将变量赋值</span> <span style="box-sizing: border-box; padding-right: 0.1px;">直接打印 $ret表示连接状态 $cmd表示结果但直接打印 1表示未连接0表示已连接</span> |