Heim > Artikel > Backend-Entwicklung > TP5 bestimmt die mobile Version und die PC-Version
Dieser Artikel stellt hauptsächlich die Beurteilung von Mobiltelefonen und PCs in TP5 vor, die einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen Freunden in Not teilen.
Schreiben Sie zunächst die ismobile-Methode, die zur Bestimmung der Geräteanmeldung verwendet wird, in die application>common.php
öffentliche Datei:
Schreiben Sie dann die Abrufmethode im Basisklassen-Controller neu. Basis des application>index>controller>Base.php
Front-End-Indexmoduls:
function ismobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) return true; //此条摘自TPM智能切换模板引擎,适合TPM开发 if (isset ($_SERVER['HTTP_CLIENT']) && 'PhoneClient' == $_SERVER['HTTP_CLIENT']) return true; //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 if (isset ($_SERVER['HTTP_VIA'])) //找不到为flase,否则为true return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false; //判断手机发送的客户端标志,兼容性有待提高 if (isset ($_SERVER['HTTP_USER_AGENT'])) { $clientkeywords = array( 'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile' ); //从HTTP_USER_AGENT中查找手机浏览器的关键字 if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) { return true; } } //协议法,因为有可能不准确,放到最后判断 if (isset ($_SERVER['HTTP_ACCEPT'])) { // 如果只支持wml并且不支持html那一定是移动设备 // 如果支持wml和html但是wml在html之前则是移动设备 if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) { return true; } } return false; }
Zum Schluss erben Sie von der Basisklasse in application>index>controller>Index
In der Indexmethode des Base-Controller-Index können jeweils der Pfad auf der PC-Seite und der Pfad auf der mobilen Seite übergeben werden.
/** *加载模板输出(电脑和手机) * @accessprotected * @paramstring$template模板文件名 * @paramstring$mobiletemplate手机模板文件名 * @paramarray$vars模板输出变量 * @paramarray$replace模板替换 * @paramarray$config模板参数 * @returnmixed */ protected function fetch($template = '', $mobiletemplate = '', $vars = [], $replace = [], $config = []) { if (ismobile()) { return $this->view->fetch($mobiletemplate, $vars, $replace, $config); } else { return $this->view->fetch($template, $vars, $replace, $config); } }
Das
default/index/index
davor ist der Pfad, der der PC-Seite entspricht, und dasmobile/index/index
dahinter ist der Pfad, der der mobilen Seite entspricht.
Durch die obige Methode können wir sehen, dass sie funktioniert , aber es ist sehr umständlich, jedes Mal auf zwei Wegen zu gehen.
Schreiben Sie zunächst die Konstante, die zur Bestimmung der Geräteanmeldung verwendet wird, in die application>common.php
öffentliche Datei VIEW_PATH
:
return $this->fetch('default/index/index','mobile/index/index');
Ersetzen Sie dann die Vorlagenvariablen in der Konfigurationsdatei config.php des application>index>config.php
Modulindex:
if (\think\Request::instance()->isMobile()) { define('VIEW_PATH', __DIR__ . '/../application/index/view/mobile/'); } else { define('VIEW_PATH', __DIR__ . '/../application/index/view/default/'); }
Zum Schluss müssen Sie nur noch eine direkt in der Controller-Methode abrufen Weg reicht.
return [ "template"=>[ // 模板路径 'view_path' => VIEW_PATH, ], ];
Tipp: Die Verzeichnisstruktur der Startseite ist wie in der Abbildung dargestellt:
Beachten Sie, dass die Verzeichnisstruktur unter Standard und Mobil konsistent ist
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So weisen Sie Werte in einem Array einer Reihe von Variablen in PHP zu
Laravel im Terminal So zeigen Sie Protokolle an
Das obige ist der detaillierte Inhalt vonTP5 bestimmt die mobile Version und die PC-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!