@BLM21

Почему номер телефона приходит в Telegram не кликабельным?

Приветствую уважаемых знатоков тематики.

Есть код php, отвечающий за отправку сообщений в Telegram:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['name']) && !empty($_POST['phone'])){
  if (isset($_POST['name'])) {
    if (!empty($_POST['name'])){
  $name = strip_tags($_POST['name']);
  $nameFieldset = "Имя пославшего: ";
  }
}

if (isset($_POST['phone'])) {
  if (!empty($_POST['phone'])){
  $phone = strip_tags($_POST['phone']);
  $phoneFieldset = "Телефон: ";
  }
}
if (isset($_POST['theme'])) {
  if (!empty($_POST['theme'])){
  $theme = strip_tags($_POST['theme']);
  $themeFieldset = "Тема: ";
  }
}

$ip=$_SERVER["REMOTE_ADDR"];
$brose=$_SERVER["HTTP_USER_AGENT"]; 
$txtname = trim($_POST['name']);
$txtNameValue = trim($_POST['name_class_value']);
$txtphone = trim($_POST['phone']);
$txttheme = trim($_POST['theme']);

// от кого
$fromMail = 'info@mysite.com';
$fromName = 'заявка с сайта';

// Сюда введите Ваш email
$emailTo = 'for@mysite.com';

$subject = 'Форма обратной связи';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $fromName ." <". $fromMail ."> \r\n";

// тело письма
$body = "Получена заявка с сайта https://mysite.com\n\nИмя: $txtname\nТелефон: $txtphone\nТема: $txttheme\n\nIP отправителя: $ip\nБраузер отправителя: $brose";
$mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail );

//echo 'ok';


$token = "111111111111111111111111111111111111111111";
$chat_id = "-111111111";
$arr = array(
  $nameFieldset => $name,
  $phoneFieldset => $phone,
  $themeFieldset => $theme
);

foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};
$txt = str_replace('+','%2B',$txt);
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
 
  echo '<p class="form-title success">Молодец<br />Будешь лучше!</p>';
    return true;
} else {
  echo '<p class="form-title fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
} else {
  echo '<p class="form-title fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
} else {
header ("Location: /");
}

?>


Сообщения приходят в телеграм в следующем виде: +7 (999) 999-99-99
Только вот номер не кликабелен, а это неудобно. Видимо, где-то есть маленький недочёт. Но где? Многие для кликабельности мучаются, чтобы сделать +7, и тогда им начинает приходить в мессенджер кликабельный номер. Здесь же +7 есть (насколько я понимаю, реализовано этой строкой " $txt = str_replace('+','%2B',$txt); " , но кликабельности нет.

Могу так же приложить JS файл формы отправки, но, по-моему, собака зарыта в php, а не JS.
  • Вопрос задан
  • 380 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MrColdCoffee
web
попробуйте
urlencode($txt)
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы