Warning: Undefined array key "HTTPS" in include() (line 29 of /opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php).
include('/opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php') (Line: 4)
require('/opt/www/fdv2/drupal.stage/web/sites/drupal001.net/settings.php') (Line: 145)
Drupal\Core\Site\Settings::initialize('/opt/www/fdv2/drupal.stage/web', 'sites/drupal001.net', Object) (Line: 1099)
Drupal\Core\DrupalKernel->initializeSettings(Object) (Line: 701)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
有个正则表达式 看不懂 请教 - Drupal大学 - Drupal问答论坛
首页 / 帖子
有个正则表达式 看不懂 请教

在drupal的bootstrap.inc的711行

<?php

&& preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host);

?>

请问:

1, 为啥要验证[这个符号呢  -- \[?

2, 为啥要验证?呢 -- (?

邀请赵高欣哦 谢谢


2个答案
老葛
发布于:2015-03-24 14:02

先插句嘴:

(?:,这里的?:代表不被捕获的意思,不是匹配?哦

刘伯彪
发布于:2015-03-24 17:23

1. 验证[这个符号,是IPv6的URL地址
比如: 

http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
http://[1080:0:0:0:8:800:200C:417A]/index.html 

2. 参考 @苏北老农的答案。