Про ваш код:
function replaceUrl() {
/*
вот тут получаем
$url = https://m.site.ru/request
или
$url = https://site.ru/request
*/
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if ($detect->isMobile() == 1 && $det['link'] == 0){
$url = 'm.'.$url; // <= WTF?
// $url = m.https://site.ru/request
return $url;
} else if ($det['mobile'] == 0 && $det['link'] == 1){
$url = preg_replace('#^m.#', '', $url); // <= тут вообще регулярка не валидна,
// так как url начинается всегда
// с http или https
return $url;
} else return false;
}
Тут вообще голова заболела:
function isMobileLink() {
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if(stristr('#^m.#', '', $url) == 1) { // <= воу, воу, полехче. перечитайте
// документацию по этой функции,
// тут какая то наркомания
return 1;
} else return 0;
}
Это то что сходу нашел
Про детектирование мобил и прочего
Если у вас не хостинг, а полноценный выделенный сервак, то в пхп есть чудесная функция:
get_browser
Надо всего лишь прописать в php.ini путь до browscap.ini
Работает быстрее библиотек, на сегодняшний день вполне не плохо по user-agent определяет мобилы/планшеты/десктопы/боты, а бонусом еще всякую хрень, но это сами увидете, когда изучать начнете
PS:$way = array(0,0,0);
$way[1] = isBot();
$way[2] = $det['mobile'];
$way[3] = isMobileLink();
if ($way[1] == 1 && $way[2] == 1 && $way[3] == 1) { $red=false; $adw=false;} //Бот телефон на моб версии';}
if ($way[1] == 1 && $way[2] == 1 && $way[3] == 0) { $red=true; $adw=false;} //Бот телефон на пк версии';}
if ($way[1] == 1 && $way[2] == 0 && $way[3] == 1) { $red=true; $adw=false;} //Бот комп на моб версии';}
if ($way[1] == 1 && $way[2] == 0 && $way[3] == 0) { $red=false; $adw=false;} //Бот комп на пк версии';}
if ($way[1] == 0 && $way[2] == 1 && $way[3] == 0) { $red=true; $adw=true;} //Человек телефон на пк версии';}
if ($way[1] == 0 && $way[2] == 1 && $way[3] == 1) { $red=false; $adw=true;} //Человек телефон на моб версии';}
if ($way[1] == 0 && $way[2] == 0 && $way[3] == 1) { $red=true; $adw=true;} //Человек комп на моб версии';}
if ($way[1] == 0 && $way[2] == 0 && $way[3] == 0) { $red=false; $adw=true;} //Человек комп на пк версии';}
можно переписать двумя строчками, используя булевые функции NOT и XOR
PPS:а вообще я даже не программист, тупо линуксоид-задрот.
просто такие вещи знать бы не плохо