Не использовать для PREG_SPLIT_DELIM_CAPTURE
, если вы используете положительный lookbehind в своем шаблоне. Функция будет хранить разделители.
$text = preg_split('/(?<=[.:!?])/', 'good:news.everyone!', 0, PREG_SPLIT_NO_EMPTY);
Если вы используете lookbehind
, он просто ищет символ без его соответствия. Таким образом, в случае preg_split()
функция не будет отбрасывать символ.
Результат без флага PREG_SPLIT_NO_EMPTY
:
array (
0 => 'good:',
1 => 'news.',
2 => 'everyone!',
3 => ''
);
Результат с флагом PREG_SPLIT_NO_EMPTY
:
array (
0 => 'good:',
1 => 'news.',
2 => 'everyone!'
);
Вы можете протестировать его с помощью этого PHP Online Function Tester .
Была проблема в форме действия.
<form method="post" action="messages.php?user=$username_view" class="chat-form">
<textarea name="send_message_text_txt"></textarea>
<button name="send_message_button_btn" type="submit"><i class="fa fa-paper-plane"></i></button>
</form>
Переменные фактически не передавались. Я повторил параметр вместо того, чтобы писать его прямо в форме действия.
Новый код формы:
<form method="post" action="messages.php?user=<?php echo $username_view ?>" class="chat-form">
<textarea name="send_message_text_txt"></textarea>
<button name="send_message_button_btn" type="submit"><i class="fa fa-paper-plane"></i></button>
</form>
Вероятно, столбец message_sender_id
является целым числом, и в запросе вы пытаетесь ввести значение в кавычках