2016-11-28 58 views
0

这是我的店里方法,其中我从我的观点获得IP通过请求我的IP工作创造形式,并希望爆炸一些数据

public function store(Request $request) 
    { 
     $ip['ip_range'] = $request->input('ip_range'); 
     $ip['min_ip'] = $request->input('ip_range'); 
     $ip['max_ip'] = $request->input('ip_range'); 

     $ip_data = Ip::create($ip); 
     session()->flash('msg', ' Successfully created'); 
     return view('ip.index'); 
    } 

在上面我想,如果IP当属

192.168.2.9
192.168.1.2

应当保存为2个值....平均它应该在分离它和我在哪里找到/n我创建了一个新值,依此类推。

而接下来的事情是,如果用户输入作为

192.168.1.0-3

这里,-谈到最后一个192.168.1-3应该IP_RANGE192.168.1.0被保存在min_ip192.168.1.3 as max_ip

+0

您所要求的代码..自己做的东西和参考。 – Kyslik

+0

一些指针 1.'filter_var($ request-> input('ip_range'),FILTER_VALIDATE_IP)'可用于验证单个IP - http://php.net/manual/en/function.filter- var.php 2.'preg_match(“/ \ d {1,3} [。] \ d {1,3} [。] \ d {1,3} [。] \ d {1,3}(\ r \ n)* /“,$ request-> input('ip_range'))'可以用来检查是否有多个地址,如果有,爆炸('\ r \ n',$ request-> input ('ip_range'))'可以用来获取它们。 3.'preg_match(“/ \ d {1,3} [。] \ d {1,3} [。] \ d {1,3} [。] \ d {1,3} [ - ] \ d {1,3}(\ r \ n)* /“,$ request-> input('ip_range'))'可用于检查范围 祝您好运 – Vivek

回答

1

我希望这是你要找的人:

public function store(Request $request) { 
    $ip['ip_range'] = $request->input('ip_range'); 

    $arrIps = explode("\r\n", $ip['ip_range']); 
    foreach($arrIps as $strIp) { 

     $arrRange=explode("-",$strIp); 
     if(count($arrRange)>1){ 
     $ip['min_ip']= $arrRange[0]; 
     $arrDot=explode(".",$arrRange[0]); 
     $arrDot[3]=$arrRange[1]; 
     $ip['max_ip']= implode(".",$arrDot); 
     } 
     else 
     $ip['min_ip']=$ip['max_ip']=""; 

     $ip_data = Ip::create($ip); 

    } 
    session()->flash('msg', ' Successfully created'); 
    return view('ip.index'); 
} 
+0

其非常接近的一个问题是现在发生了它的保存因为'ip_range'中的'192.168.1.0-20 192.168.1.0-20'应该只保存一个字段中的一个 –

+0

这些是2 ips在一个字段中它应该只有一个在ist中,第二个将在第二行中 –

+0

以及也在第一种情况下,它仅保存为192.168.1.0 192.168.1.1只在第1个字段中不包含最小和最大列 –