functions.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. // 全局函数
  3. // 捕获所有请求信息,包含fatal error
  4. register_shutdown_function('shutdownHandler');
  5. function shutdownHandler()
  6. {
  7. if ($error = error_get_last()) {
  8. // $filename 必须是一个绝对路径
  9. if (!defined('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME')) {
  10. $filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'register_shutdown_function.log';
  11. } else {
  12. $filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME;
  13. }
  14. if ($error['type']<3){
  15. $message = '时间 : ' . date('Y-m-d H:i:s') . PHP_EOL;
  16. $message .= '文件 : ' . $error['file'] . PHP_EOL;
  17. $message .= '行数 : ' . $error['line'] . PHP_EOL;
  18. $message .= '错误 : ' . $error['message'] . PHP_EOL;
  19. $message .= '类型 : ' . $error['type'] . PHP_EOL . PHP_EOL;
  20. file_put_contents($filename, $message, FILE_APPEND);
  21. }
  22. }
  23. }
  24. /**
  25. * 获取当前语言环境
  26. *
  27. * @return string
  28. */
  29. function lang()
  30. {
  31. static $global_lang;
  32. if ($global_lang !== null) {
  33. return $global_lang;
  34. }
  35. $global_lang = !empty($_REQUEST['global_lang']) ? $_REQUEST['global_lang'] : $_COOKIE['global_lang'];
  36. if (empty($global_lang) && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
  37. $global_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  38. $global_lang = $global_lang == 'zh' ? $global_lang : "en";
  39. setcookie("global_lang", $global_lang, time() + 3600 * 24 * 30, '/');
  40. }
  41. return $global_lang;
  42. }