Как создать символ новой строки в сообщении телеграммы?

Когда я отправляю данные, которые я прочитал из базы данных mysql, пользователю telegram, пользователь получает подчеркивание и т. Д. Вместо символа новой строки. Таким образом, я не могу правильно отформатировать текст сообщения.

Как я могу отформатировать сообщение телеграммы, которое является вопросом с 4 или более возможными ответами?

Что еще изменится, чего я не ожидаю? Кстати, я отправляю неанглийские символы.

$qsBody = $rowQuestion['body']; // This is what I read from database that contains some new line characters
$strReply = $qsBody;
$strSendMethod = "SendMessage?chat_id=$ChatId&text='$strReply'";
file_get_contents( BOT_TARGET_ADDRESS . $strSendMethod );
// The message received by user contains _ instead of new line.

4

Решение

Ну, это было очень легко! Мне просто нужно было закодировать сообщение в URL, но никто не сказал мне сделать это!

$qsBody = $rowQuestion['body']; // This is what I read from database that contains some new line characters
$strReply = $qsBody;
$strReply = urlencode($strReply ); // encode message
$strSendMethod = "SendMessage?chat_id=$ChatId&text='$strReply'";
file_get_contents( BOT_TARGET_ADDRESS . $strSendMethod );
// The message received by user contains _ instead of new line.
2

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

Вы можете использовать некоторый код как это:

$text = 'hi-how are you?_im fine.lets go';
$text = str_replace(array('_', '-', '.'), chr(10), $text);

код, заменить подчеркивание _, - а также . персонаж с разрывом строки.

0

sendMessage с «s» в нижнем регистре.

 $qsBody = $rowQuestion['body']; // This is what I read from database that contains some new line characters
$strReply = $qsBody; // set here your message with \n where you want a new line
$strSendMethod = "sendMessage?chat_id=$ChatId&text='$strReply'";
file_get_contents( BOT_TARGET_ADDRESS . $strSendMethod );

попробуйте здесь https://telegram-bot-sdk.readme.io/docs/sendmessage

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