Discuz! 7.2 的$discuz_action變量作用

修改過DZ論壇程序的朋友都會發覺有些頁面會存在$discuz_action這個變量,有些頁面卻沒有

那到底它是做什麼用的呢?原來它是給用戶的活動動作進行記錄用的

這個變量是寫入cdb_sessions數據表action字段用的

然後通過在線用戶member.php?action=online時讀取並調用templates/default/actions.lang.php中的$actioncode數組變量

進行中文回顯給用戶瞭解某用戶處於何種動作用的。

  1. // Returns true if $string is valid UTF-8 and false otherwise.
  2. function is_utf8($word)
  3. {
  4. if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true)
  5. {
  6. return true;
  7. }
  8. else
  9. {
  10. return false;
  11. }
  12.  
  13. } // function is_utf8

// 經常遇到這種情況,需要對URL中的字符串進行解碼,例如Google中搜索“編碼”,"編碼"會轉換爲
%E7%BC%96%E7%A0%81,使用的是utf-8編碼
// 綜合了網上搜集的資料和GB/UTF-8編碼方法,判斷一箇中英文混雜的字符串是用GB2312/GBK編碼還是UTF-8編碼
// 返回: true - 含GB編碼 false - 爲UTF-8編碼
function is_gb2312($str)
{
        for($i=0; $i<strlen($str); $i++) {
                $v = ord( $str[$i] );
                if( $v > 127) {
                        if( ($v >= 228) && ($v <= 233) )
                        {
                                if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters
                                $v1 = ord( $str[$i+1] );
                                $v2 = ord( $str[$i+2] );
                                if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf編碼
                                        return false;
                                else
                                        return true;
                        }
                }
        }
        return true;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章