Хорошо, у меня есть сообщение, можно ли использовать регулярное выражение, чтобы определить, есть ли в нем квадратные скобки, и если да, определить, не закрыты ли они.
Например, и открытиеквадратная скобка выглядит так: [code]
Закрытие выглядит следующим образом: [/code]
Но есть гораздо больше, чем просто коды BBC кода, которые могут быть в квадратных скобках.
Я хотел бы иметь возможность использовать переменную, которая содержит все сообщение, и каким-то образом определить, есть ли какие-либо слова в квадратных скобках, которые не имеют закрывающего тега, который обозначается: [/
слово, а затем ]
Открывающие теги курса начинаются с [
слова, а затем заканчиваются ]
Итак, если у меня есть что-то подобное в переменной:
Хорошо, вот общий файл script.php, содержащий ВСЕ код недавнего модуля.Итак, мы начнем с функции Main для получения $ params из параметра functions ...
[code]function module_recent($params)
{
global $context, $txt;
// Grab the params, if they exist.
if (is_array($params))
{
Было бы известно, что [code]
не был закрыт, и добавили бы его в конце [/code]
Но также, если у меня есть что-то вроде этого:
[table]
[tr][td]Hello World[/td][/tr]
[tr][td]This is not closed...
Следует знать, что [table]
и [tr]
и [td]
не закрыты, и он должен добавить закрывающие теги в негов конце в следующем порядке:
[/td]
и затем [/tr]
и наконец [/table]
Но есть и другие теги, такие как [list][li][/li][/list]
Было быбыло бы здорово, если бы я мог заполнить все теги, которые могут быть в квадратных скобках внутри массива, и затем вызвать функцию, которая проверила бы, есть ли у нее открывающие и закрывающие теги, таким образом, это не повлияло бы на теги кода не-bbc, которые людивставлять в сообщения просто причина.
Может кто-нибудь дать мне руку на рег.Экс, чтобы сделать это с?По крайней мере, если кто-то может помочь мне начать это, это было бы превосходно.
Спасибо, ребята:)