我需要在一些带有html文件内容的字符串上使用preg_reg。
$file = file_get_contents($path);
$html_array = explode(' ', $file);
问题是数组看起来有时像这样:
[77]=>
string(35) "<div>
</div>
<br>
{{testto}}
<br>"
我试图在那里放一些空格..:P无法工作..:/稍后我会像这样做一个preg_grep:
$childframes = preg_grep('!\{\{(\w+)\}\}!', $html_array);
$retur = array();
foreach($childframes as $v){
$v = trim($v);
$retur[] = substr($v, 2, -2);
}
return $retur;
所以这个想法基本上是在数组中得到{{testto}}
,每次出现{{sometext}}
,我把它归结为只有'sometext'。
谢谢=)
修改
要重复这个问题:爆炸无法正常工作,所以我需要一些正则表达式,如果可能的话,而不仅仅是空格...,是否有更好的方法在大字符串上执行preg_grep?
答案 0 :(得分:1)
不需要爆炸,创建一个临时数组,grep它并在以后删除它,只是一个正则表达式匹配:
$html = file_get_contents($path);
preg_match_all('#{{(.*?)}}#', $html, $matches);
$array_of_texts = $matches[1];
答案 1 :(得分:0)
你不想只使用:
strip_tags($v)
首先要删除所有的html标签,然后你的代码才会正确地获得'sometext'。