helper_mobile.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: helper_mobile.php 36342 2017-01-09 01:15:30Z nemohou $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class helper_mobile {
  12. public static function mobileoutput() {
  13. global $_G;
  14. if(!defined('TPL_DEFAULT')) {
  15. $content = ob_get_contents();
  16. ob_end_clean();
  17. $content = preg_replace_callback("/href=\"(\w+\.php)(.*?)\"/", array(__CLASS__, 'mobileoutput_callback_mobilereplace_12'), $content);
  18. ob_start();
  19. $content = '<?xml version="1.0" encoding="utf-8"?>'.$content;
  20. if('utf-8' != CHARSET) {
  21. $content = diconv($content, CHARSET, 'utf-8');
  22. }
  23. if(IN_MOBILE === '3') {
  24. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  25. } else {
  26. @header('Content-Type: text/html; charset=utf-8');
  27. }
  28. echo $content;
  29. exit();
  30. } elseif (defined('TPL_DEFAULT') && !$_G['cookie']['dismobilemessage'] && $_G['mobile']) {
  31. ob_end_clean();
  32. ob_start();
  33. $_G['forcemobilemessage'] = true;
  34. parse_str($_SERVER['QUERY_STRING'], $query);
  35. $query['forcemobile'] = '1';
  36. $query_sting_tmp = http_build_query($query);
  37. $_G['setting']['mobile']['pageurl'] = $_G['siteurl'].basename($_G['PHP_SELF']).'?'.$query_sting_tmp;
  38. unset($query_sting_tmp);
  39. showmessage('not_in_mobile');
  40. exit;
  41. }
  42. }
  43. public static function mobileoutput_callback_mobilereplace_12($matches) {
  44. return self::mobilereplace($matches[1], $matches[2]);
  45. }
  46. public static function mobilereplace($file, $replace) {
  47. if(strpos($replace, 'mobile=') === false) {
  48. if(strpos($replace, '?') === false) {
  49. $replace = 'href="'.$file.$replace.'?mobile='.IN_MOBILE.'"';
  50. } else {
  51. $replace = 'href="'.$file.$replace.'&amp;mobile='.IN_MOBILE.'"';
  52. }
  53. return $replace;
  54. } else {
  55. return 'href="'.$file.$replace.'"';
  56. }
  57. }
  58. }
  59. ?>