Здравствуйте. В Телеграм есть ограничение на количество символов в сообщении: 4096. Ситуация, которую я пытаюсь предотвратить маловероятна, но возможна. Мне нужно, в случае превышения лимита размера сообщения, поделить его на несколько штук и отправить. Но есть момент: сообщение у меня выглядит вот так:
$output = "<i>Запись №513</i> \nКакой-то текст на 50-150 символов\n".hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0').hex2bin('E380B0')."\n<i>Запись №514</i>\nA Какой-то текст на 50-150 символов";
hex2bin - это смайлик (разделительная волна сообщения
То есть если просто отсчитывать 4000 символов, резать и отправлять, то можно нарваться на середину какого-нибудь hex2bin.
Сама функция отправки выглядит вот так:
function telega($method, $data) {
$ch = curl_init("https://api.telegram.org/bot00000:00000000/$method");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$curlRes1 = curl_exec($ch);
echo $curlRes1;
}
$data = [
"chat_id"=> $main_id,
"text"=> $output,
"parse_mode" => "html"
];
//Отправляем сообщение
telega("sendMessage", $data);
Подскажите пожалуйста, как можно, в случае превышения длины сообщения, разрезать его на слове
<i>Запись
и отправить уже в 2 этапа? То есть это как раз то слово, с которого начинается следующая инфа.