我需要在一些带有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?

有帮助吗?

解决方案

不需要爆炸,创建一个临时数组,grep它并在以后删除它,只是一个正则表达式匹配:

$html = file_get_contents($path);
preg_match_all('#{{(.*?)}}#', $html, $matches);
$array_of_texts = $matches[1];

其他提示

你不想只使用:

strip_tags($v)

首先要删除所有的html标签,然后你的代码才会正确地获得'sometext'。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top