$str='adfefdfdf<if codition=("{$name} eq 1")>2014/5/2fafefdfef。';
preg_match_all('#if\s+codition=(.*)\s*>#U',$str,$arr);
echo '<pre>';
print_r($arr);
没有<得到的结果是
Array
(
[0] => Array
(
[0] => if codition=("{$name} eq 1")>
)
[1] => Array
(
[0] => ("{$name} eq 1")
)
)
但
有<
$str='adfefdfdf<if codition=("{$name} eq 1")>2014/5/2fafefdfef。';
preg_match_all('#<if\s+codition=(.*)\s*>#U',$str,$arr);
echo '<pre>';
print_r($arr);
的结果
Array
(
[0] => Array
(
[0] =>
)
[1] => Array
(
[0] => ("{$name} eq 1")
)
)
为什么加了个<就无法匹配到结果了呢,<也不是元字符啊,谁能解答下。
------解决方案--------------------
你在浏览器中看一下源文件就知道了
<if codition=("{$name} eq 1")> 被浏览器解释为 html 标记了
用 pre 是阻止不了的,要用 xmp 才行