Kesan Bahasa Penyemak Imbas dalam PHP Made Robust
Anda telah cuba memasukkan halaman yang sesuai secara automatik berdasarkan bahasa penyemak imbas dalam skrip PHP anda. Walau bagaimanapun, skrip goyah dengan pelayar tertentu, secara konsisten memaparkan halaman "index_en.php". Untuk menangani isu ini dan meningkatkan kebolehpercayaan penyelesaian anda, pertimbangkan untuk melaksanakan penambahbaikan berikut:
lixlpixel_get_env_var($Var) harus diubah suai untuk mengendalikan persekitaran yang $GLOBALS[$Var] mungkin sudah ditetapkan.
Daripada mencari secara berulang untuk bahasa yang diterima menggunakan strpos, huraikan HTTP_ACCEPT_LANGUAGE kepala ke dalam tatasusunan dan semak padanan.
Pertimbangkan untuk menyimpan bahasa anda yang tersedia dalam pangkalan data atau sumber data berstruktur lain dan bukannya bergantung pada tatasusunan berkod keras.
Laksanakan sandaran yang lebih mantap mekanisme yang merangkumi senarai keutamaan bahasa atau mengubah hala ke halaman pemilihan bahasa.
A Ringkas Alternatif
Untuk pendekatan yang lebih mudah, anda boleh menggunakan skrip berikut:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = ['fr', 'it', 'en']; $lang = in_array($lang, $acceptLang) ? $lang : 'en'; require_once "index_{$lang}.php";
Skrip ini mengekalkan fungsi yang dimaksudkan untuk mengesan bahasa penyemak imbas menggunakan pengepala HTTP_ACCEPT_LANGUAGE dan memuatkan yang sepadan halaman "index_xx.php". Ia menggunakan fungsi substr asli PHP untuk mengekstrak dua aksara pertama kod bahasa. Tatasusunan $acceptLang mentakrifkan bahasa yang diterima. Jika bahasa yang dikesan sepadan dengan satu dalam tatasusunan, ia digunakan; jika tidak, 'en' diandaikan sebagai lalai. Pernyataan require_once termasuk fail "index_xx.php" yang sesuai berdasarkan bahasa yang dikesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Bahasa Penyemak Imbas dengan Amanah dalam PHP untuk Melayan Halaman yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!