2013-07-01 50 views
0

我通过GET方法从cliet发送字符串到服务器。其格式的街道和buils号这样的:如何正确等待来自客户端的参数?

Lenina, 51 

在服务器我分析它:

$str = $_GET["street"]; 
    $adr_array = preg_split("/[\s,]+/", $str); 
    $street = $adr_array[0]; 
    $build = $adr_array[1]; 
    if($build!=null){ 
...do something.... 
} 

但如果我只得到:

Lenina 

当然,我得到错误因为$adr_array[1]不存在。
在这种情况下如何处理,我没有得到内部编号?

回答

2

您可以检查是否在数组元素is set与否:

//Your code omitted 
$build = isset($adr_array[1]) ? $adr_array[1] : null; 
//Your code omitted 

附:你确定你想收到像这样的街道和建筑物号码吗?也许你想有单独的输入字段?我建议这样做,因为它会让你的代码更清洁。但这只是建议,因为我不知道你的用户界面看起来喜欢什么。

+0

谢谢isset。我曾想过,但两个领域需要更多的空间。单场看起来很id http:// http://smeijer.github.io/GeoSearch/ –

+0

@KliverMax是的,它看起来不错。 ;) – Leri

1

你可以使用array_key_exists

if(array_key_exists(1, $adr_array)){ 
    //Street number given 
} 

或像这样:

$build = array_key_exists(1, $adr_array) ? trim($adr_array[1]) : null; 
相关问题