内容如下:{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}我现在想取: <tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>请问如何实现?谢谢!就这么点分了。
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}我现在想取: <tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>请问如何实现?谢谢!就这么点分了。
$input = '{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}
';
preg_match('/<[\s\S]+>/', $input, $match);
$output = $match[0];
preg_match_all "<[\\s\\S]+>", "要正则匹配的字符串", $out, PREG_PATTERN_ORDER);
print_r($out);
preg_match_all "<[\\s\\S]+>", "要正则匹配的字符串", $out, PREG_PATTERN_ORDER);
print_r($out);
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>而不match到<tr>或者<td>
?
{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}
{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}那么将会被match的字符会是:<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}
{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
'<tr>'.
'<td>{{NewsID}}</td>'.
'<td>{{Title}}</td>'.
'<td>{{123}}</td>'.
'<div>{{454545}}</div>'.
'</tr>'.
'{{/foreach}}' ;
preg_match_all('/<\w+>{{\w+}}<\/\w+>|<\/?\w+>/',$data,$array);
var_dump($array);
------------------------
/*
array(6) {
[0]=>
string(4) "<tr>"
[1]=>
string(19) "<td>{{NewsID}}</td>"
[2]=>
string(18) "<td>{{Title}}</td>"
[3]=>
string(16) "<td>{{123}}</td>"
[4]=>
string(21) "<div>{{454545}}</div>"
[5]=>
string(5) "</tr>"
}*/
{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td> </tr>
{{/foreach}}
{{foreach sql="select * from z_news order by newsid desc limit 0,10"}}
<tr>
<td>{{NewsID}}</td>
<td>{{Title}}</td>
</tr>
{{/foreach}}str;preg_match_all('#\{\{foreach((?:(?!\}\}).)*)\}\}(.*?)\{\{/foreach\}\}#is',$str,$m);
echo "<pre/>";
print_r(array_map('htmlspecialchars',$m[2]));