PHP: Telegram Bot: Insertar salto de línea a mensaje de texto
telegram-bot linefeed (8)
¡Hay una mejor manera! El problema se debe a las codificaciones de URL ... Puede usar texto PHP normal usando /n
pero pasándolo al método urlencode
, de la siguiente manera:
$txt = urlencode("here is my text./n and this is a new line /n another new line");
¡Esto funciona para mi!
"/n"
y "/r/n"
, probado en un mensaje de texto enviado por telegram bot, para crear un salto de línea. En lugar de mostrar el salto de línea, aparecerá el subrayado _
después de usarlos.
¿Cómo podría imprimir la alimentación de línea en un mensaje de telegrama enviado por bot?
CÓDIGO
$txt = ''با تشکر از عضویت شما، هر روز حدود ساعت 10 شب یک ویدئوی جالب برای شما ارسال خواهد شد.'';
$txt .= " /n ";
$txt .= ''Thanks for joining, Every day at almost 18:30 GMT an intersting video will be sent'';
Cualquier ayuda será apreciada.
¡puede que no se muestre el resultado como lo desea en idiomas Unicode como el persa! puedes preparar tu texto y usar esto:
$txt = implode("/n", explode(''/n'', $txt));
1) Si desarrolla su código en el sistema operativo Windows / Linux, simplemente puede usar enter in text:
$text = ''test 123
another text'';
¡Eso es todo!
2) Si su código se ejecuta en un servidor Windows / Linux, puede usar la constante PHP_EOL
lugar de /n
:
$text = ''text 123 ''.PHP_EOL.''yet another text'';
3) Y si busca una solución independiente de sistema operativo, puede usar %0A
o chr(10)
para este propósito:
$text = ''text 123 ''.chr(10).''yet another text'';
Para evitar problemas de codificación y codificación, utilicé esta solución simple en mi código:
- Primero , envío mi mensaje de texto en formato HTML estableciendo el argumento parse_mode = HTML en la URL "sendMessage".
Luego , inserto el siguiente código para cada salto de línea:
<pre>/n</pre>
es decir.
... sendMessage?parse_mode=HTML&text="... paragraph1<pre>/n</pre>paragraph2 ..."
Por supuesto, la variable de texto se curl escapó antes de anexarse a la URL:
$text = curl_escape($handle, $text);
Para futuros visitantes solo cito @Dagon responder en comentarios:
El uso de %0A
hará que la línea se alimente en mensajes de telegrama
Solucioné el problema de esta manera:
$txt = ''aaaaaaaaa/nnew line1 /nnewline2'';
$parameters = array(''chat_id'' => $chatId, "text" => $txt);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
intente aquí: https://telegram-bot-sdk.readme.io/docs/sendmessage
deberías usar urlencode para resolver este problema:
$text ="sth sth
sth sth";
$text = urlencode($text);
para mí, esta solución funciona: use comillas dobles
$message=''Hi''
$message=$message."/n";
$message=$message.''Guys''