$data = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>aaa/r/naaaaaaaaaaaa"; preg_match_all('/<meta[^>]*charset=([a-zA-Z0-9]*[\-]*[0-9]*)/', $data, $meta);
var_dump($meta);
为什么打印出来是:
array
0 =>
array
0 => string '<meta http-equiv='Content-Type' content='text/html; charset=utf-8' (length=64)
1 =>
array
0 => string 'utf-8' (length=4)第二个匹配到utf-8是怎么匹配的?
不是只能匹配第一个吗?
var_dump($meta);
为什么打印出来是:
array
0 =>
array
0 => string '<meta http-equiv='Content-Type' content='text/html; charset=utf-8' (length=64)
1 =>
array
0 => string 'utf-8' (length=4)第二个匹配到utf-8是怎么匹配的?
不是只能匹配第一个吗?
charset=([a-zA-Z0-9]*[\-]*[0-9]*)utf-8是这里匹配出来的,可以看下php手册里关于preg_match_all的讲解