$rv){ if( array_key_exists($rk, $GLOBALS['arr_whitelist']) && ($GLOBALS['arr_whitelist'][$rk] > 0) ){//主域名在白名单的,并且标识为1的,整个不写入屏蔽列表, continue; } if(empty($rk)){//遗漏的域名,不会写入到最终的配置里 // print_r($rv); continue; } $rv = array_unique($rv); if((in_array('.' . $rk, $rv) || in_array('www.' . $rk, $rv) || in_array($rk, $rv)) && !array_key_exists($rk, $GLOBALS['arr_whitelist']) && (1 !== $formatObj['full_domain']) ){ $write_len += fwrite($fp, str_replace('{DOMAIN}', $rk, $formatObj['format']) . "\n"); continue; } $arr_written = []; foreach($rv as $rvv){ if(array_key_exists($rvv, $GLOBALS['arr_whitelist'])){ continue; } //合并三级域名逻辑 $tmp_arr1 = explode('.', $rvv); $written_flag = false; $tmp_arr1_len = count($tmp_arr1); if($tmp_arr1_len > 2){ for($tmp_pos = 3; $tmp_pos <= $tmp_arr1_len; $tmp_pos++){ $tmp_arr2 = array_slice($tmp_arr1, -1 * $tmp_pos); $tmp_domain = implode('.', $tmp_arr2); if(array_key_exists($tmp_domain, $GLOBALS['arr_whitelist']) && (1 === $GLOBALS['arr_whitelist'][$tmp_domain])){ $written_flag = true; break; } if((1 !== $formatObj['full_domain']) && in_array($tmp_domain, $rv)){ if(!in_array($tmp_domain, $arr_written)){ if(array_key_exists($tmp_domain, $GLOBALS['arr_whitelist'])){ continue; } $arr_written[] = $tmp_domain; $write_len += fwrite( $fp, str_replace('{DOMAIN}', $tmp_domain, $formatObj['format'] ) . "\n" ); } $written_flag = true; break; } } } if(in_array($rvv, $arr_written) || $written_flag){ continue; } $arr_written[] = $rvv; $write_len += fwrite($fp, str_replace('{DOMAIN}', $rvv, $formatObj['format']) . "\n"); } } fclose($fp); return $write_len; } }