2016-03-22 2 views
0

後でスクリプトで使用できる値を返すために、いくつかの検証によって変数を処理する必要があります。私の$ varはGETから来ています。PHP - 変数が処理され、値を返す

例:変数は以下のようになります。

$var = 'main server app1 stop' 

以下のように文字列を分割する必要があります。

main serverは、以下のようなリストを検索してIPアドレスを返す必要があります。

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

app1もリストで検索して一致を返す必要があります。

service httpd = 'app1' 
service iptables = 'app2' 

次に、関連する一致を一緒に戻します。この例では、次のものが返されます。

192.168.10.1 service httpd stop 

私はこれを十分に説明してください。私が詳細を必要としていることを教えてくれないなら。

ありがとうございます!

+0

を行うことをお勧め読んで考えてみましょう文字列を配列に変換する '' explode'(http://php.net/manual/en/function.explode.php)私の意見では、文字列よりも配列を刺激する方が簡単です。 –

答えて

1

、PHPでexplode()と配列についての詳細を読みますが、ここのチーズだPLEASE PLEASE:

$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]; 

出力:

192.168.10.1 service httpd stop 
+0

これは完璧に動作します、ありがとう! – jaseUK

0

私は、次の

$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

これはリスト内の2つの値でのみ機能しますか?私は今リストに複数の項目を追加しました。 – jaseUK

+0

より多くの価値があるなら、@ Ceeeeの解決策がより望ましい – Hrach