Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung häufig verwendeter Funktionen zum Ausführen von Linux-Befehlen in PHP

Zusammenfassung häufig verwendeter Funktionen zum Ausführen von Linux-Befehlen in PHP

高洛峰
高洛峰Original
2016-12-21 10:34:421574Durchsuche

Unter normalen Umständen wird PHP selten zum Ausführen von Linux-Befehlen verwendet, aber unter besonderen Umständen können Sie diese Funktionen verwenden. Früher wusste ich, dass es zwei Funktionen gibt, die Linux-Befehle ausführen können, eine ist exec und die andere ist shell_exec. In diesem Artikel werde ich Ihnen eine Zusammenfassung gängiger Funktionen zum Ausführen von Linux-Befehlen in PHP vorstellen beziehen Sie sich darauf

Im Allgemeinen gibt es nur wenige. Sie werden PHP verwenden, um Linux-Befehle auszuführen, aber unter besonderen Umständen können Sie diese Funktionen verwenden. Früher wusste ich, dass es zwei Funktionen gibt, die Linux-Befehle ausführen können, eine ist exec und die andere ist shell_exec. Tatsächlich gibt es viele davon. Basierend auf dem Inhalt des Handbuchs werden die folgenden 6 Funktionen vorgestellt.

1, Exec-Funktion

<?php
$test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令
exec($test,$array); //执行命令
print_r($array);
?>

gibt die folgenden Ergebnisse zurück:

[root@krlcgcms01 shell]# php ./exec.php
Array
(
[0] => 1001.log
[1] => 10.log
[2] => 10.tar.gz
[3] => aaa.tar.gz
[4] => mytest
[5] => test1101
[6] => test1102
[7] => weblog_2010_09
)

2, Systemfunktion

<?php
$test = "ls /tmp/test";
$last = system($test);
print "last: $last\n";
?>

gibt das Ergebnis zurück:

[root@krlcgcms01 shell]# php system.php
1001.log
10.log
10.tar.gz
aaa.tar.gz
mytest
test1101
test1102
weblog_2010_09
last:weblog_2010_09

3, Durchgangsfunktion

<?php
$test = "ls /tmp/test";
passthru($test);
?>

4, Popen-Funktion

<?php
$test = "ls /tmp/test";
$fp = popen($test,"r"); //popen打一个进程通道
 
while (!feof($fp)) { //从通道里面取得东西
$out = fgets($fp, 4096);
echo $out; //打印出来
}
pclose($fp);
?>

5, proc_open-Funktion

<?php
$test = "ls /tmp/test";
$array = array(
array("pipe","r"), //标准输入
array("pipe","w"), //标准输出内容
array("pipe","w") //标准输出错误
);
$fp = proc_open($test,$array,$pipes); //打开一个进程通道
echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为1是输出内容
proc_close($fp);
?>

6, Shell_exec-Funktion

<?php
$test = "ls /tmp/test";
$out = shell_exec($test);
echo $out;
?>

Popen, Passthru, Proc_Open, Shell_exec Rückgabeergebnisse sind wie folgt:

[root@krlcgcms01 shell]# php test.php
1001.log
10.log
10.tar.gz
aaa.tar.gz
mytest
test1101
test1102
weblog_2010_09

Ich kann nur diese Funktionen finden, die sein können ausgeführt Ich denke, es sollte mehr Befehle unter Linux geben. Jeder kann gerne hinzufügen.

Weitere Artikel zur Zusammenfassung häufig verwendeter PHP-Funktionen zum Ausführen von Linux-Befehlen finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn