PHPタグ内のコンテンツを一致させるのに問題があります。
現在、私はこのコードを持っていますが、うまくいきません:
<?php preg_match_all('/<\?php(.+)\?>/', $str, $inside_php); ?>
コンテンツを取得して、eval() などの他の処理を実行できるようにする必要があります。
その場でやめてください、あなたはこのようにやりたくないのです!
PHP のトークナイザー拡張機能を使用して文字列をトークンに分割すると、すべての PHP ソース コードを確実に見つけることができます。次に、トークンを使用して必要な変換を行うことができます。正規表現はこの仕事のツールではありません (スプーンで火を消したくありませんよね?)
$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;
}
}
ピリオド (またはドット) は改行と一致しません:
([.\n\r]+)
そうしてください^^
<?php preg_match_all('/<\?php([.\n\r]+)\?>/', $str, $inside_php); ?>