過路的牛牛們,幫小菜看下這段代碼吧
想通過取得UA中的語言編碼資訊實現跳轉,功能:如果UA包含非zh-CN的編碼,跳轉之,未設定語言資訊的不跳轉,
不是程式,自己查函數下午搞到現在還沒實驗成功,條件加迴圈就暈了,輸出一堆no搞不定,大牛小牛幫幫忙,多謝啦!
$ua = $_SERVER['HTTP_USER_AGENT'];
$lang = array("af-ZA","sq-AL","ar-DZ","ar-BH","ar-EG","ar-IQ","ar-JO","ar-KW","ar-LB","ar-LY","ar-MA","ar-OM","ar-QA","ar-SA","ar-SY","ar-TN","ar-AE","ar-YE","hy-AM","az Azeriaz-AZ-Cyrl","az-AZ-Latn Azeri","eu-ES","be-BY","bg-BG","ca-ES","zh-HK","zh-MO","zh-CN","zh-CHS","zh-SG","zh-TW","zh-CHT","hr-HR","cs-CZ","da-DK","div-MV","nl-BE","nl-NL","en-AU","en-BZ","en-CA","en-CB","en-IE","en-JM","en-NZ","en-PH","en-ZA","en-TT","en-GB","en-US","en-ZW","et-EE","fo-FO","fa-IR","fi-FI","fr-BE","fr-CA","fr-FR","fr-LU","fr-MC","fr-CH","gl-ES","ka-GE","de-AT","de-DE","de-LI","de-LU","de-CH","el-GR","gu-IN","he-IL","hi-IN","hu-HU","is-IS","id-ID","it-IT","it-CH","ja-JP","kn-IN","kk-KZ","kok-IN","ko-KR","ky-KZ","lv-LV","lt-LT","mk-MK","ms-BN","ms-MY","mr-IN","mn-MN","nb-NO","nn-NO","pl-PL","pt-BR","pt-PT","pa-IN","ro-RO","ru-RU","sa-IN","sr-SP-Cyrl","sr-SP-Latn","sk-SK","sl-SI","es-AR","es-BO","es-CL","es-CO","es-CR","es-DO","es-EC","es-SV","es-GT","es-HN","es-MX","es-NI","es-PA","es-PY","es-PE","es-PR","es-ES","es-UY","es-VE","sw-KE","sv-FI","sv-SE","syr-SY","ta-IN","tt-RU","te-IN","th-TH","tr-TR","uk-UA","ur-PK","uz-UZ-Cyrl","uz-UZ-Latn","vi-VN");
for($i=0;$i<136;$i++){
if(is_numeric(stripos($ua,$lang[$i])) == false){
echo "no";
}else{
echo "yes";
}
}
------解決思路----------------------
需求是中文不跳轉,非中文跳轉嗎?
擷取用戶端瀏覽器使用的語言應該是從$_SERVER["HTTP_ACCEPT_LANGUAGE"]中截取的。
舉個栗子
if (preg_match("/zh/i", substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4))) {
echo "不跳轉";
}else {
echo "跳轉";
}
------解決思路----------------------
首先HTTP_ACCEPT_LANGUAGE已經提到了
其次,需求是非zh的編碼跳轉,你大可不必將所有的可能都列出來,用stripos判定一次即可
最後遍曆數組可以試試foreach