я пытаюсь проверить и отобразить кросс-браузерный сайт в фрейме, чтобы имитировать мобильную среду. В iframe должен отображаться сайт в мобильном формате. У меня есть iframe шириной всего 320 пикселей, некоторые мобильные сайты загружаются и используют css для адаптивного макета, как и ожидалось. Но для веб-сайтов, которые используют другие методы для обнаружения мобильных устройств, загружаются неправильно. Я хотел бы поймать их всех. Моя главная проблема — это оргина для сайтов, они отличаются тем, что разные URL загружаются при определенных действиях. Я не занимаюсь разработкой эмулятора для этой цели, мне нужно загрузить эти URL-адреса, чтобы проверить, полностью ли они реагируют в данный момент.
Я видел этот сайт:
http://php-drops.blogspot.se/2013/07/mobile-emulator-with-php.html
Но не могу освоить это. Как я могу загрузить настоящий отзывчивый сайт в свой iframe? Я полагаю, когда заголовок сообщает среде загрузить другой сайт, например m.site.com. Если есть уникальный мобильный сайт, который перенаправляет, как я могу получить этот URL?
Получилось, это то, что я сделал:
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3');
curl_setopt($ch, CURLOPT_URL, htmlspecialchars_decode($url));
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
return $info['url'];
И я вернул мобильный URL. Таким образом, в случае, если какой-то сайт переходит на m.somewebsite или любой другой и включает в себя правильную компоновку внутри iframe 🙂
Других решений пока нет …