Heim  >  Artikel  >  Backend-Entwicklung  >  PHP simuliert den Ping-Befehl (wie man die PHP-Exec-Funktion verwendet)

PHP simuliert den Ping-Befehl (wie man die PHP-Exec-Funktion verwendet)

高洛峰
高洛峰Original
2016-12-21 10:36:591473Durchsuche

Verwenden Sie PHP, um unseren häufig verwendeten DOS-Befehl Ping-Befehl zu simulieren. Hier wird hauptsächlich die in PHP integrierte Funktion exec verwendet, um den Ping-Befehl des Systems aufzurufen und so die Ping-Befehlsfunktion zu realisieren.

<?php
$to_ping=&#39;www.phpernote.com&#39;;
$count=2;
$psize=66;
echo "正在执行php ping命令,请等待...\n<br><br>";
flush();
while(1){
 echo "<pre class="brush:php;toolbar:false">";
 exec("ping -c $count -s $psize $to_ping", $list);
 for($i=0;$i<count($list);$i++){
  print $list[$i]."\n";
 }
 echo "
"; flush(); sleep(3); } ?>

Beachten Sie, dass die Verwendung der exec-Funktion erfordert, dass der Server den Aufruf integrierter Systemfunktionen unterstützt. Darüber hinaus können Sie diese Funktion auch mit in PHP integrierten Funktionen wie „System“ erreichen. Die Erklärung dieser beiden Funktionen im PHP-Handbuch:
exec --- Externes Programm ausführen
Syntax: string exec ( string command [, array &output [, int &return_var]] )
Beschreibung:
exec() führt den angegebenen Befehl aus, gibt jedoch nichts aus. Es gibt lediglich die letzte Zeile des Befehlsergebnisses zurück. Wenn Sie einen Befehl ausführen und alle Informationen aus dem Befehl abrufen müssen, können Sie passhru ( verwenden. ) diese Funktion.
Wenn das Parameter-Array angegeben ist, wird das angegebene Array mit jeder vom Befehl ausgegebenen Zeile gefüllt. Hinweis: Wenn das Array bereits einige Elemente enthält, hängt exec() diese an das Ende des Arrays an Wenn Sie nicht möchten, dass diese Funktion Elemente anhängt, können Sie unset() aufrufen, bevor Sie das Array an exec() übergeben.
Wenn die Parameter array und return_var angegeben sind, wird der zurückgegebene Statusbefehl in diese Variable geschrieben.
Hinweis: Wenn Sie zulassen, dass Daten aus Benutzereingaben an diese Funktion übergeben werden, sollten Sie escapeshellcmd() verwenden, um sicherzustellen, dass der Benutzer das System nicht dazu verleiten kann, beliebige Befehle auszuführen.
Hinweis: Wenn Sie diese Funktion zum Starten eines Programms verwenden und es im Hintergrund laufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen Ausgabedatenstrom umgeleitet wird, andernfalls wird dies von PHP ausgeführt hängen, bis die Programmausführung beendet ist.

system --- Externe Programme ausführen und Ausgabe anzeigen
Syntax: string system ( string command [, int &return_var] )
Beschreibung:
system( ) führt den angegebenen Befehl command aus und Ergebnisse ausgeben. Wenn der Parameter return_var angegeben ist, wird der Statuscode des ausgeführten Befehls in diese Variable geschrieben.
Hinweis: Wenn Sie zulassen, dass Daten aus Benutzereingaben an diese Funktion übergeben werden, sollten Sie escapeshellcmd() verwenden, um sicherzustellen, dass der Benutzer das System nicht dazu verleiten kann, beliebige Befehle auszuführen.
Hinweis: Wenn Sie diese Funktion zum Starten eines Programms verwenden und es im Hintergrund laufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen Ausgabedatenstrom umgeleitet wird, andernfalls wird dies von PHP ausgeführt hängen, bis die Programmausführung beendet ist.
Beide werden zum Aufrufen von System-Shell-Befehlen verwendet.
exec kann alle Ausführungsergebnisse an die $output-Funktion zurückgeben (Array 0 ist der Status der Ausführung). Fehler.
systerm muss das Ergebnis nicht direkt zurückgeben. $return_var ist der Ausführungsstatuscode.
exec 🎜>

Systembeispiel:
<?php  
$a = exec("dir",$out,$status);  
print_r($a);  
print_r($out);  
print_r($status);  
?>

<?php  
$a = system("dir",$out);  
print_r($a);  
print_r($out);  
?>


Weitere Artikel zum PHP-Simulations-Ping-Befehl (wie man die PHP-Exec-Funktion verwendet) 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