должен вывести списком обычные данные типа:
q:w:e:r:t:y
q:w:e:r:t:y
Но там ограничение тг видимо и отдаёт ошибку: Bad Request: message is too long
Сам цикл:
foreach ($info as $key => $value) {
$key++;
$str .= "{$value['ip']}:{$porthttp}:{$login}:{$ps}\r\n";
}
Можно ли как-то обхитрить ТГ и всё таки вывести выше лимита? Или нужно бить сообщение на 2 шт и как тогда грамотно разбить?)
Я побоюсь спросить длина сколько символов?
Строк 150-300 формата: q:w:e:r
Знаешь, как обойти работу функции strlen?
protected function export(): void { if (empty($this->getMessages())) { return; } $client = new Client(); $messages = $attaches = []; foreach($this->getMessages() as $message) { $messages[] = "*{$message->getLevel()}*: {$this->quote($message->getMessage())}"; $attaches[] = "{$message->getLevel()}: {$message->getMessage()}"; } $message = implode("\n\n", $messages); if (mb_strlen($message) > self::MAX_MESSAGE_SIZE) { $client->request( HttpMethod::post()->toString(), "https://api.telegram.org/bot{$this->token}/sendDocument", [ 'multipart' => [ [ 'name' => 'body', 'contents' => http_build_query([ 'chat_id' => $this->chatId ]), 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded'] ], [ 'name' => 'document', 'filename' => date('Y.m.d H:i:s').'.txt', 'contents' => implode("\n\n", $attaches), 'Mime-Type' => 'text/palin', 'headers' => ['Content-Type' => 'text/plain'] ] ] ] ); } else { $client->send( new Request( HttpMethod::post()->toString(), "https://api.telegram.org/bot{$this->token}/sendMessage", ['Content-Type' => 'application/x-www-form-urlencoded'], http_build_query([ 'chat_id' => $this->chatId, 'parse_mode' => 'markdown', 'text' => $message ]) ) ); } $this->clearMessages(); }
Обсуждают сегодня