0

我需要在一些包含 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”的地方。

谢谢 =)

编辑:

重复这个问题:explode 不能正常工作,所以如果可能的话,我需要一些正则表达式,而不仅仅是空格..,有没有更好的方法在大字符串上执行 preg_grep ?

4

2 回答 2

1

无需爆炸,创建一个临时数组,对其进行 grep 并稍后将其剥离,只需一个正则表达式匹配:

$html = file_get_contents($path);
preg_match_all('#{{(.*?)}}#', $html, $matches);
$array_of_texts = $matches[1];
于 2009-11-26T21:01:32.667 回答
0

你不只是想使用:

strip_tags($v)

首先,您要删除所有 html 标签,然后您的代码将正确获取“sometext”。

于 2009-11-26T20:45:39.403 回答