2016-03-22 25 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()和數組,但這裏的奶酪:

$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