Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara mengesahkan PHP hanya boleh menggunakan penyemak imbas mudah alih

Cara mengesahkan PHP hanya boleh menggunakan penyemak imbas mudah alih

PHPz
PHPzasal
2023-03-21 15:49:471511semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk pembangunan web. Dengan populariti peranti mudah alih, semakin banyak tapak web perlu menyokong penyemak imbas mudah alih. Untuk meningkatkan keselamatan tapak web, banyak laman web akan menyekat beberapa halaman atau fungsi untuk hanya boleh diakses melalui pelayar mudah alih dan bukan melalui pelayar desktop. Artikel ini akan menerangkan cara menggunakan PHP untuk mengesahkan penyemak imbas mudah alih sahaja.

Langkah 1: Kesan Ejen Pengguna

Dalam pengepala permintaan HTTP, terdapat medan Ejen Pengguna, yang digunakan untuk mengenal pasti jenis dan versi pelayar. Dalam PHP, anda boleh mendapatkan nilai medan Ejen Pengguna melalui $_SERVER['HTTP_USER_AGENT']. Berikut ialah contoh kod:

$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/Mobile/i', $user_agent)) {
    // 是手机浏览器
} else {
    // 不是手机浏览器
}

Kod di atas menggunakan ungkapan biasa untuk mengesan sama ada Ejen Pengguna mengandungi "Mudah Alih". Jika ia disertakan, ia dianggap sebagai penyemak imbas mudah alih jika tidak, ia dianggap bukan penyemak imbas mudah alih.

Walau bagaimanapun, kaedah ini mempunyai beberapa kelemahan. Pertama, Agen Pengguna boleh dipalsukan. Kedua, Agen Pengguna bagi sesetengah penyemak imbas desktop (seperti Chrome) juga mengandungi "Mudah Alih", jadi jenis penyemak imbas tidak dapat dikenal pasti dengan tepat. Oleh itu, kita perlu menggunakan kaedah yang lebih dipercayai untuk mengesan pelayar mudah alih.

Langkah 2: Kesan Ejen Pengguna dan Terima pengepala

Jenis penyemak imbas boleh ditentukan dengan lebih tepat dengan mengesan pengepala Ejen Pengguna dan Terima. Pengepala Terima ialah pengepala permintaan HTTP yang digunakan untuk memberitahu pelayan format respons yang ingin diterima oleh pelanggan. Peranti mudah alih biasanya akan menyertakan "application/vnd.wap.xhtml+xml" dalam pengepala Terima, manakala penyemak imbas desktop tidak akan memasukkan nilai ini. Oleh itu, kita boleh menentukan jenis penyemak imbas dengan mengesan sama ada pengepala Terima mengandungi nilai ini. Berikut ialah contoh kod:

$user_agent = $_SERVER['HTTP_USER_AGENT'];
$accept = $_SERVER['HTTP_ACCEPT'];
if (strpos($user_agent, 'Mobile') !== false && strpos($accept, 'application/vnd.wap.xhtml+xml') !== false) {
    // 是手机浏览器
} else {
    // 不是手机浏览器
}

Kod di atas menggunakan fungsi strpos untuk mengesan sama ada pengepala Ejen Pengguna dan Terima mengandungi rentetan yang ditentukan, ia dianggap sebagai penyemak imbas mudah alih .

Langkah 3: Gunakan perpustakaan pihak ketiga untuk mengesan jenis penyemak imbas

Selain kaedah di atas, anda juga boleh menggunakan pustaka pihak ketiga untuk mengesan jenis pelayar. Perpustakaan yang biasa digunakan termasuk Mobile_Detect dan WURFL. Perpustakaan ini boleh mengenal pasti pelbagai jenis pelayar dengan lebih tepat. Berikut ialah contoh kod menggunakan perpustakaan Mobile_Detect:

require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
if ($detect->isMobile()) {
    // 是手机浏览器
} else {
    // 不是手机浏览器
}

Kod di atas menggunakan kaedah isMobile pustaka Mobile_Detect untuk mengesan sama ada ia adalah penyemak imbas mudah alih.

Ringkasan

Artikel ini menerangkan cara menggunakan PHP untuk mengesahkan penyemak imbas mudah alih sahaja. Kami boleh menentukan jenis penyemak imbas dengan mengesan pengepala Ejen Pengguna dan Terima, atau kami boleh menggunakan perpustakaan pihak ketiga untuk mengenal pasti pelbagai jenis penyemak imbas dengan lebih tepat. Dalam pembangunan sebenar, kita harus memilih kaedah yang sesuai untuk mengesahkan jenis penyemak imbas mengikut situasi tertentu dan menerapkannya pada langkah keselamatan tapak web.

Atas ialah kandungan terperinci Cara mengesahkan PHP hanya boleh menggunakan penyemak imbas mudah alih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn