2016-03-22 20 views
0

Bir kodlamayı daha sonra kullanabildiğim bir değeri döndürmek için bazı doğrulama yoluyla bir değişkeni işlemek gerekiyor. $ Varlığım bir GET’ten geliyor.PHP - Değişken işlenmiş ve bir değer döndürme

Örnek: Bir değişken aşağıdakine benzer bir şekilde gelebilir.

$var = 'main server app1 stop' 

Dizgiyi aşağıdaki gibi ayırmam gerekiyor. Aşağıdaki gibi bir listeye bakmak ve ip adresini döndürmek için

main server.

192.168.10.1 = 'main server' 
192.168.10.2 = 'backup server' 

app1

da bir listede aranır ve maçı döndürmek gerekir. İlgili eşleşmeleri birlikte geri getirin. Bu örnekte aşağıdakileri geri istiyorum.

192.168.10.1 service httpd stop 

Umarım yeterince açıklamıştım. Bana daha fazla ayrıntıya ihtiyacım olduğunu söylemezsen.

Teşekkürler!

+0

okuma düşünün yapıyor öneririz diziyi bir diziye dönüştürmek için "explode" (http://php.net/manual/en/function.explode.php) hakkında - Bence bir diziyi bir diziden daha fazla tahrif etmek daha kolay. –

cevap

1

, PHP explode() ve diziler hakkında daha fazla okumak ama burada peynir LÜTFEN LÜTFEN:

$var = 'main server app1 stop'; 

$server = array(
    'main server' => '192.168.10.1', 
    'backup server' => '192.168.10.2', 
); 

$service = array(
    'app1' => 'service httpd', 
    'app2' => 'service iptables', 
); 

$arr = explode(' ', $var); 

echo $server["$arr[0] $arr[1]"] . ' ' . $service[$arr[2]] . ' ' . $arr[3]; 

çıkışı:

192.168.10.1 service httpd stop 
+0

Bu mükemmel çalışıyor, teşekkürler! – jaseUK

0

aşağıdaki

$server = (strpos($var,'main') !== false) ? '192.168.10.1' 
              : '192.168.10.2' ; 

$service = (strpos($var,'app1') !== false) ? 'httpd' : 'iptables'; 
$output = $server . ' service ' . $service . ' stop'; 
+0

Bu sadece listede 2 değerle çalışır mı? Şimdi listelere birden çok öğe ekledim. – jaseUK

+0

Eğer daha fazla değere sahipseniz o zaman @ Ceeee'nin çözümü daha çok tercih edilir – Hrach