Php 创建具有有效格式的域并跳过其他域

Php 创建具有有效格式的域并跳过其他域,php,laravel,format,Php,Laravel,Format,我正在研究在laravel 5.3中存储域的功能。在这里,用户在textarea中输入多个域,每行一个,我想验证是否应创建具有正确格式的每个域,其他域应跳过,并使用正确格式和错误格式计数。 这是我的密码 $name = $request->input('domain_name'); $domains = preg_split('/[\r\n ,]+/', $name); foreach ($domains as $domain) { $data['domain'] = $doma

我正在研究在laravel 5.3中存储域的功能。在这里,用户在textarea中输入多个域,每行一个,我想验证是否应创建具有正确格式的每个域,其他域应跳过,并使用正确格式和错误格式计数。 这是我的密码

$name = $request->input('domain_name');
$domains = preg_split('/[\r\n ,]+/', $name);

foreach ($domains as $domain) {
    $data['domain'] = $domain;
    $data['user_id'] = Auth::user()->id;
    if (empty($request->input('domain_id'))) {
        $domain = Domain::create($data);
    }
}
具有正确格式的域名应创建并跳过错误格式,并计算正确格式和错误格式。
感谢您使用
preg\u match
Regex
提供帮助:

if( ! preg_match("/^(?!-)(?:[a-zA-Zd-]{0,62}[a-zA-Zd].){1,126}(?!d+)[a-zA-Zd]{1,63}$/", $domain)) continue; // skip 
或者,您可以使用:

if(filter_var(gethostbyname($domain), FILTER_VALIDATE_IP))
{
    return 'True';
}

根据行分隔符的定义,每行-->可以有一个,如\n(或者\n\r在Windows上)。然后将每个域与您的验证进行匹配。@BagusTesa如何验证它?请查看答案,有人已经为您回答了:)但请记住首先拆分域列表。是的,如果您查看了我的问题@BagusTesait将错误显示为preg_match():没有结尾分隔符“^”找到@bara”ayyashthanks验证,但我也会继续,但不会创建坏的一次,并计算好的和坏的格式域。我添加了另一种方法您不更新如何使用真和假格式计算域数您可以创建一个
$计数器
继续
,递增计数器。计数器将拥有无效域的数量,然后用计数器减去列表长度,您将拥有有效域的数量!