- preg_match: documentation ( source)
- urldecode: documentation ( source)
<?php
$strings[] = "http://t.me/tm_factory_bot"; //0
$strings[] = "https://telegram.me/tm_factory_bot"; //1
$strings[] = "https://telegram.me/tm_factory_bot?start=123"; //2
$strings[] = "tg://resolve?domain=buy_this"; //3
$strings[] = "tg://resolve?domain=buy_this&start=123"; //4
$strings[] = "https://t.me/joinchat/AAAAAEOI5lHxvYlMxwHGSA"; //5
$strings[] = "https://web.telegram.org/#/im?tgaddr=tg%3A%2F%2Fjoin%3Finvite%3DAAAAAEOI5lHxvYlMxwH-GSA"; //6
$strings[] = "https://web.telegram.org/#/im?tgaddr=tg%3A%2F%2Fresolve%3Fdomain%3Dbuy_this"; //7
$strings[] = "https://web.telegram.org/#/im?tgaddr=tg%3A%2F%2Fresolve%3Fdomain%3Dtm_factory_bot%26start%3D123"; //8
$strings[] = "https://web.telegram.org/#/im?p=@funny_images"; //9
$strings[] = "@funny_images"; //10
$strings[] = "funny_images"; //11
$strings[] = "tg://join?invite=AAAAAEOI5lHxvYlMxwHGSA"; //12
foreach ($strings as $key=>$string) {
$tgType = true;
if ($tgType) {
$private = "tg://join?invite=";
$public = "tg://resolve?domain=";
$sep = "&";
} else {
$private = "https://t.me/joinchat/";
$public = "https://t.me/";
$sep = "?";
}
$value = urldecode($string);
preg_match('#[^&\?]??([a-z_0-9]+)[&\?]??(start=[a-z0-9]*?)?$#i', $value, $preg);
if (preg_match("#(invite=|joinchat/)#i", $value)) {
$link = $private . $preg[1];
} else {
$link = $public . $preg[1];
}
if (isset($preg[2])) {
$link .= $sep . $preg[2];
}
echo "\r\n" . $key . " - " . $link;
}