Frage

Ich brauche auf einigen String mit Inhalt aus einer HTML-Datei verwenden preg_reg.

$file = file_get_contents($path);
$html_array = explode(' ', $file);

Das Problem ist, dass das Array manchmal so aussieht:

[77]=>
    string(35) "<div>
</div>
<br>
{{testto}}
<br>"

Ich habe versucht, in einigen Whitespaces dort zu setzen ..: P Werde nicht funktionieren ..: / Später werde ich ein preg_grep wie folgt tun:

$childframes = preg_grep('!\{\{(\w+)\}\}!', $html_array);
$retur = array();
foreach($childframes as $v){
   $v = trim($v);
   $retur[] = substr($v, 2, -2);
}
return $retur;

So ist die Idee im Grunde {{testto}} in einem Array zu erhalten ist, wo jedes Auftreten von {{sometext}} ich es String nur down ‚sometext‘.

Danke =)

EDIT:

Um das Problem zu wiederholen: Explosion ist nicht richtig so arbeiten ich brauche etwas regex möglich, wenn statt nur Leerzeichen .., und gibt es eine bessere Möglichkeit, preg_grep auf eine große Zeichenfolge zu tun

War es hilfreich?

Lösung

Keine Notwendigkeit, zu explodieren, ein temporäres Array erstellen, grep es und es später abzustreifen, nur ein regexp Spiel:

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

Andere Tipps

Wollen Sie nicht nur verwenden:

strip_tags($v)

zuerst, so dass Sie alle HTML-Tags entfernen, dann Code wird das ‚sometext‘ bekommen richtig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top