| preg_match 的用法 | ||||||||
| http://www.eastphp.com/ 2007-07-14 | ||||||||
| 大家一看到preg_match肯定会头痛的。。。其实没什么,下面我就尽力给还不明白的兄弟们争取讲明白了: 在这里我就不解释preg_match的说明了,朋友们可以通过php手册查看..先来个简单点的: preg_match("/^(http://)?([^/]+)/i", "http://www.php.net/index.html", $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match("/[^./]+.[^./]+$/", $host, $matches); echo "domain name is: {$matches[0]}n"; 这是手册里的例子。多数人对preg_match犯晕都出在正则上,以后我也会介绍正则。先看这个例子, preg_match($pattern,$string,$matcher)其中$pattern对应的就是”/^(http://)?([^/]+)/i $str 是http://www.php.net/index.html.$match是匹配到的结果。按照手册上的意思: 如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。 这是什么意思呢?第一句就不用解释了,$matches[0] 将包含与整个模式匹配的文本。 咱们用pring_r打印出来第一个$matches: Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net ) 这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http://)?([^/]+)/i第一个()里的值!数组下标2的值以此类推 ++++++++++++++++++++++++++++++++++++++++ 追加注释: ++++++++++++++++++++++++++++++++++++++++++ PHP extract() 函数 定义和用法 PHP extract() 函数从数组中把变量导入到当前的符号表中。 对于数组中的每个元素,键名用于变量名,键值用于变量值。 第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。 本函数返回成功设置的变量数目。 语法 extract(array,extract_rules,prefix)
例子 1 <?php$a = 'Original';$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");extract($my_array);echo "\$a = $a; \$b = $b; \$c = $c";?> 输出: $a = Cat; $b = Dog; $c = Horse 例子 2 使用全部参数: <?php$a = 'Original';$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");extract($my_array, EXTR_PREFIX_SAME, 'dup');echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a;";?> 输出: $a = Original; $b = Dog; $c = Horse; $dup_a = Cat; |
转发至微博
转发至微博
评论