2016-04-01 9 views
0

Ich benutze PHP5 und habe ein Skript, das IP-Adressen des Clients zurückgibt. Skript mit der Funktion shell_exec() ausführen. Jetzt ist die Ausgabe wie folgt: * 192.168.10.40 192.168.10.41 *. Jetzt muss ich das in einem Array speichern. Ich habe preg_match() benutzt, aber es funktioniert nicht. Hierphp5 Kopiere Sub-Strings aus String getrennt durch Leerzeichen?

ist der Code unter Verwendung preg_match():

$test = shell_exec("/www/dhcp.sh"); 
$pattern='/([^ ]*) /'; 
preg_match($pattern, $test, $new); 

preg_match() zurückkehrt, 0; Hier

ist diejenige, die ich explodieren() verwendet:

$test = shell_exec("/www/dhcp.sh"); 
var_dump(explode(' ', $test)); 

habe ich auch explodieren, aber ich bin immer das Ergebnis als: Array (1) {[0] => string (28) " 192.168.10.40 192.168.10.41 "} Kann mir jemand sagen, wie kann ich die Zeichenfolge in ein Array aufteilen?

Grüße,
Sowmya

+0

Sie sollten den Code, den Sie zeigen, sind verwenden. – jeroen

Antwort

1

Sie explodieren können Sie Ihre String aufgeteilt:

explode(' ', '192.168.10.40 192.168.10.41')); 

, die gibt Ihnen

array(2) { 
    [0]=> 
    string(13) "192.168.10.40" 
    [1]=> 
    string(13) "192.168.10.41" 
} 

http://php.net/manual/fr/function.explode.php

+0

Die IP-Adresse ändert sich und das Skript gibt möglicherweise nichts zurück, wenn die Geräte nicht verbunden sind. – user12345

+0

dann müssen Sie sicherstellen, dass die von Ihrem Skript zurückgegebene Zeichenfolge vor dem Explodieren der Zeichenfolge nicht leer ist – wlalele

+0

Ja, das Skript wird nicht leer zurückgegeben. Aber ich muss die Ausgabe von shell_script() übergeben, um die Funktion zu explodieren. Kann ich als Argument gehen? – user12345

Verwandte Themen