Как разбить код на токены используя php?

У меня есть код, который выглядит следующим образом в строке:

$code = "<html>
<body>
(if(foo == 10 || (foo == 20 && bar == 30))
(foo(something)foo)
)if)
</body>
</html>";

Как я могу разбить строку, чтобы получить в результате:

array(
"<html>\n<body>",
"(if(",
"foo == 10 || (foo == 20 && bar == 30))""    ",
"(foo(",
"something",
")foo)",
")if)",
"</body>\n</html>");

пока у меня есть это:

$tokens = preg_split("/(\(\w+\(|\)\w+\))/", $code, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
echo json_encode($tokens);

но в ответ я получил это:

["\r\n\r\n\r\n","(if(","foo == 10 || (foo == 20 && bar == 30))\r\n ","(foo(","something",")foo)","\r\n",")if)","\r\n<\/body>\r\n<\/html>\r\n"]

<html> а также <body> отсутствует, что не так с моим кодом?

1

Решение

Страница была HTML, и это <html> а также <body> был интерпретирован как HTML, поэтому он не обнаружился. Установка content-type решает проблему:

header('Content-Type: text/plain');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]