PHP: Telegram Bot: вставить разрыв строки в текстовое сообщение
"n"
и "rn"
, проверено в текстовом сообщении, отправленном ботом telegram, для создания разрыва строки. Вместо того, чтобы показывать разрыв строки, подчеркните _
появляется после их использования.
как я мог печатать ленту в телеграмме, отправленной ботом?
код
$txt = 'با تشکر از عضویت شما، هر روز حدود ساعت 10 شب یک ویدئوی جالب برای شما ارسال خواهد شد.';
$txt .= " n ";
$txt .= 'Thanks for joining, Every day at almost 18:30 GMT an intersting video will be sent';
любая помощь будет оценили.
8 ответов
есть способ лучше! Проблема из-за кодировок URL...
Вы можете использовать обычный текст PHP, используя \n
но, передав его urlencode
метод, как показано ниже:
$txt = urlencode("here is my text.\n and this is a new line \n another new line");
это работает для меня!
1) Если вы разрабатываете свой код в ОС Windows/Linux, вы можете просто использовать enter в тексте:
$text = 'test 123
another text';
вот и все!
2) Если ваш код работает на сервере Windows/Linux, вы можете использовать PHP_EOL
константы вместо \n
:
$text = 'text 123 '.PHP_EOL.'yet another text';
3) и если вы ищете независимое от ОС решение, вы можете использовать %0A
или chr(10)
для этого:
$text = 'text 123 '.chr(10).'yet another text';
для будущего посетителя просто цитирую @Dagon ответ в комментариях:
С помощью %0A
сделает линию подачи в телеграмме сообщения
Я решил проблему таким образом :
$txt = 'aaaaaaaaa\nnew line1 \nnewline2';
$parameters = array('chat_id' => $chatId, "text" => $txt);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
попробуйте здесь : https://telegram-bot-sdk.readme.io/docs/sendmessage
вы должны использовать urlencode для решения этой проблемы:
$text ="sth sth
sth sth";
$text = urlencode($text);
это может быть не показать результат, как вы хотите в языках Unicode, таких как персидский! вы можете подготовить свой текст и использовать этот:
$txt = implode("\n", explode('\n', $txt));
чтобы избежать проблем с кодированием и кодированием, я использовал это простое решение в своем коде:
- первый, я отправляю текстовое сообщение в формате HTML, установив parse_mode=HTML-код аргумент в URL-адресе" sendMessage".
-
затем, я вставляю следующий код для каждой строки:
<pre>\n</pre>
ie.
... sendMessage?parse_mode=HTML&text="... paragraph1<pre>\n</pre>paragraph2 ..."
конечно текст переменной curl сбежал перед добавлением к URL:
$text = curl_escape($handle, $text);
для меня это решение работает: используйте двойную кавычку
$message='Hi'
$message=$message."\n";
$message=$message.'Guys'