Добавлено: 30.09.2017 / 10:03
Потому что переменная смотрит на твой девайс, а не на девайс юзера.
Добавлено: 30.09.2017 / 10:06
Ей надо работать с юзер_агент пользователя, а не смотреть на твой девайс.
Дело в том что я сижу через телефон
Iron_Man, В любом случаи она должна работать с юзер_агентом пользователя.
Iron_Man, набросал такой вариант: скрипт парсит сайт с названиями мобильных браузеров, и в зависимости от браузера зашедшего на страницу пользователя, отображает соответствующую картинку
(mobile-phone.jpg -- это для мобильных устройств, а computer-icon.jpg -- для десктопных). Вместо
mobile-phone.jpg и
computer-icon.jpg тебе надо прописать адреса твоих соответствующих картинок.
* (+/-)
<?php
echo identify_device($_SERVER['HTTP_USER_AGENT']);
function identify_device($device) {
$url = 'http://www.useragentstring.com/pages/'.
'useragentstring.php?typ=Mobile%20Browser';
$page = file_get_contents($url);
preg_match_all('~<li><a[^>]*>([^<]+)</a></li>~', $page, $devices);
$img = in_array($device, $devices[1]) ? 'mobile-phone.jpg' : 'computer-icon.jpg';
return '<img src="'. $img .'" width="25" height="25" alt="" />';
}
Не выводит картинку, прописал свой путь
Добавлено: 30.09.2017 / 20:42
# Iron_Man (30.09.2017 / 20:17)
Не выводит картинку, прописал свой путь
Криво прописал.
Добавлено: 30.09.2017 / 22:47
Я решил немного изменить логику скрипта, чтобы он парсил сайт-донор только один раз, при первом его запуске. По сути, набор браузеров мобильных устройств не так уж часто там обновляется, и поэтому нет необходимости в регулярном скачивании массива с удалённого сервера.
Теперь при первом старте скрипт скачает набор юзер-агентов, и запишет их в текстовый файл. А при всех последующих запусках скрипт будет работать уже с текст. файлом. Выгода очевидна - прирост производительности =)
* (+/-)
<?php
// Иконка телефона
$phone = 'https://icon-icons.com/icons2/984/PNG/512/Untitled-1-06_icon-icons.com_75119.png';
// Иконка ПК
$pc = 'http://s1.iconbird.com/ico/2014/1/620/w512h5121390853998notebook512.png';
// Отображение иконки (телефон или пк)
echo show_device($phone, $pc);
function logging_device($base, &$devices) {
$url = 'http://www.useragentstring.com/pages/'.
'useragentstring.php?typ=Mobile%20Browser';
$page = file_get_contents($url);
preg_match_all('~<li><a[^>]*>([^<]+)</a></li>~', $page, $devices);
$devices = $devices[1];
file_put_contents($base, join(PHP_EOL, array_map('md5', $devices)), LOCK_EX);
}
function show_device($phone, $pc) {
$base = 'devices.txt';
$devices = file_exists($base) ? file($base, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
// Если файл пуст, запишем в него массив агентов
!empty($devices) ?: logging_device($base, $devices);
$img = in_array(md5($_SERVER['HTTP_USER_AGENT']), $devices) ? $phone : $pc;
return '<img src="'. $img .'" width="35" height="35" alt="" />';
}
Для наглядности добавил пару переменных, в которых прописал по умолчанию адреса иконок.
UPD: Добавил шифрование элементов массива, чтобы текст файл не сильно увеличивался в объёме.
# ДоХтор (30.09.2017 / 22:47)
Криво прописал.
Я решил немного изменить логику скрипта, чтобы он парсил сайт-донор только один раз, при первом его запуске. По сути, набор браузеров мобильных устройств не так уж часто там обнов
Картинку показывает только одну, я сейчас через телефон, а показывает ноут
# Iron_Man (01.10.2017 / 00:17)
Картинку показывает только одну, я сейчас через телефон, а показывает ноут
Сохрани и запусти этот код:
echo md5($_SERVER['HTTP_USER_AGENT']);
а его результат в точности скопируй сюда.
# ДоХтор (01.10.2017 / 00:19)
Сохрани и запусти этот код:echo md5($_SERVER['HTTP_USER_AGENT']); а его результат в точности скопируй сюда.
Вот сохранил код в отдельном файле и перешёл по ссылке
9dd7bc67866ae56575e3ebde5cfd5c52