Frage

Ich habe einige Mühe, den Inhalt innerhalb von PHP-Tags entsprechen.

Zur Zeit habe ich diesen Code, aber es ist nicht für mich arbeiten:

<?php preg_match_all('/<\?php(.+)\?>/', $str, $inside_php); ?>

Ich brauche den Inhalt abzurufen, damit ich mit ihnen andere Dinge zu tun, wie eval ().

War es hilfreich?

Lösung

Nach rechts stoppen, müssen Sie nicht es auf diese Weise tun wollen!

Sie können die tokenizer Erweiterung von PHP brechen einen String in Token, die zuverlässig alle PHP-Quellcode finden. Dann können Sie tun, was Transformation Sie mit den Token wollen. Reguläre Ausdrücke sind nicht das Werkzeug für diesen Job (Sie wollen nicht, das Feuer mit einem Löffel heraus zu setzen, nicht wahr?)

$tokens = token_get_all($string);
foreach ($tokens as $token) {
    if (is_array($token)) {
        if (!in_array($token[0], array(T_INLINE_HTML, T_OPEN_TAG, T_CLOSE_TAG))) {
            echo $token[1];
        }
    } else {
        echo $token;
    }
}

Andere Tipps

ein Punkt (oder Punkt) entspricht nicht neue Zeilen:

([.\n\r]+)

tun ^^

<?php preg_match_all('/<\?php([.\n\r]+)\?>/', $str, $inside_php); ?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top