День добрый. Пишу бота для телеграмм на php. Полностью готов но зашел в небольшой тупик. case 'Доставка': $message = "привет как дела ?"; sendMessage($token,$id,$message); break; sendMessage - должен выводить сообщение с переменной $message. В эту переменную ввожу текст. Сообщение выводится, но как сделать что бы был перенос строки. \n\r не помогают, вместо этих символов ставиться нижнее подчеркивание _ . пробовал в переменную сделать массив. выводит просто слово array.
ну 1. очевидно, что ты используешь некое готовое решение, в состав которого входит функция sendMessage() 2. вероятно, внутрь её ты не заглядывал, а если и заглядывал - то разбираться не стал. Что логично. 3. если это не сам телеграм, а я думаю, что не сам, то где-то в недрах этой sendMessage() сидит фильтр, который отрбрасывает символы из какого-то набора. Надо читать доку по этой либе и искать где там хрень либо заюзать другую либу.
PHP: <?php $output = json_decode(file_get_contents('php://input'),true); $id = $output['message']['chat']['id']; $message = $output['message']['text']; $token = 'ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ'; switch($message){ case '/start': case 'Назад': $message = 'Добро пожаловать'; sendMessage($token,$id,$message.KeyboardMenu()); break; case 'Каталог': sendMessage($token,$id,$message.KeyboardMenuKatalog()); break; case '02': $message = ''; $photo = 'https://ledunix.com/upload/iblock/583/ledunix_02_1.jpg'; sendPhoto($token,$id,$photo.inlineKeyboard()); break; case '60': $photo = 'https://ledunix.com/upload/resize_cache/iblock/9ba/500_500_1/ledunix_60_5.jpg'; $opis = 'ОПИСАНИЕ ТОВАРА2'; sendPhoto($token,$id,$photo.inlineKeyboard()); break; case 'Доставка': $message = "привет как дела ?"; sendMessage($token,$id,$message); break; case 'Как выбрать': $message = 'DONE'; sendMessage($token,$id,$message.inlineKeyboard()); break; } //sendMessage ($token,$id,$message); function sendMessage($token,$id,$message){ file_get_contents("https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$id."&text=".$message); } function sendPhoto($token, $id, $photo, $opis){ file_get_contents("https://api.telegram.org/bot".$token."/sendPhoto?chat_id=".$id."&photo=".$photo); } function KeyboardMenu(){ $replayKey = ''; $buttons = [['Каталог','Доставка','Как выбрать'],['Отзывы','Заказать','Задать вопрос']]; $keyboard =json_encode($keyboard =['keyboard' => $buttons, 'resize_keyboard' => true, 'one_time_keyboard' => false, 'selective' => true]); $reply_markup = '&reply_markup='.$keyboard.''; return $reply_markup; } function KeyboardMenuKatalog(){ $buttons = [['02','60','7'],['8','9','90'],['80','83','3'],['37','35','26'],['39','01','Назад']]; $keyboard =json_encode($keyboard =['keyboard' => $buttons,'resize_keyboard' => true,'one_time_keyboard' => false,'selective' => true]); $reply_markup = '&reply_markup='.$keyboard.''; return $reply_markup; } function inlineKeyboard(){ $reply_markup = ''; $x1 = array('text'=> 'Описание', 'callback_data'=> 'sx' ); $x2 = array('text'=> 'Характеристики', 'callback_data'=> 'Характеристики'); $x3 = array('text'=> 'Фото', 'callback_data'=> 'Фото'); $x4 = array('text'=> 'Видео', 'callback_data'=> 'Видео'); $x5 = array('text'=> 'В магазин', 'url'=> 'https://ledunix.com'); $x6 = array('text'=> 'Заказать', 'callback_data'=> 'Заказать'); $opz = [[$x1,$x2],[$x3,$x4],[$x5,$x6]]; $keyboard = array("inline_keyboard"=> $opz); $keyboard = json_encode($keyboard, true); $reply_markup = '&reply_markup='.$keyboard; return $reply_markup; } if(isset($output['callback_query']['data'])){ $id = $output['callback_query']['message']['chat']['id']; $message = $output['callback_query']['data']; $message = json_encode($message, true); sendMessage($token,$id,$message); } ?> вот весь код, без подключения каких либо библиотек.
1. Попробуй перейти с гет на пост 2. Если не понял о чем я, то тогда попробуй сообщение прогонять через urlencode() --- Добавлено --- https://php.ru/manual/function.urlencode.html