Когда я отправляю данные, которые я прочитал из базы данных 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.
Ну, это было очень легко! Мне просто нужно было закодировать сообщение в 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.
Вы можете использовать некоторый код как это:
$text = 'hi-how are you?_im fine.lets go';
$text = str_replace(array('_', '-', '.'), chr(10), $text);
код, заменить подчеркивание _
, -
а также .
персонаж с разрывом строки.
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