avatar.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /*
  3. [UCenter] (C)2001-2099 Comsenz Inc.
  4. This is NOT a freeware, use is subject to license terms
  5. $Id: avatar.php 1144 2013-01-31 06:47:43Z zhangjie $
  6. */
  7. error_reporting(0);
  8. _get_script_url();
  9. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
  10. $uid = isset($_GET['uid']) ? $_GET['uid'] : 0;
  11. $size = isset($_GET['size']) ? $_GET['size'] : '';
  12. $random = isset($_GET['random']) ? $_GET['random'] : '';
  13. $type = isset($_GET['type']) ? $_GET['type'] : '';
  14. $check = isset($_GET['check_file_exists']) ? $_GET['check_file_exists'] : '';
  15. $avatar = './data/avatar/'.get_avatar($uid, $size, $type);
  16. if(file_exists(dirname(__FILE__).'/'.$avatar)) {
  17. if($check) {
  18. echo 1;
  19. exit;
  20. }
  21. $random = !empty($random) ? rand(1000, 9999) : '';
  22. $avatar_url = empty($random) ? $avatar : $avatar.'?random='.$random;
  23. } else {
  24. if($check) {
  25. echo 0;
  26. exit;
  27. }
  28. $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  29. $avatar_url = 'images/noavatar_'.$size.'.gif';
  30. }
  31. if(empty($random)) {
  32. header("HTTP/1.1 301 Moved Permanently");
  33. header("Last-Modified:".date('r'));
  34. header("Expires: ".date('r', time() + 86400));
  35. }
  36. header('Location: '.UC_API.'/'.$avatar_url);
  37. exit;
  38. function get_avatar($uid, $size = 'middle', $type = '') {
  39. $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  40. $uid = abs(intval($uid));
  41. $uid = sprintf("%09d", $uid);
  42. $dir1 = substr($uid, 0, 3);
  43. $dir2 = substr($uid, 3, 2);
  44. $dir3 = substr($uid, 5, 2);
  45. $typeadd = $type == 'real' ? '_real' : '';
  46. return $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg";
  47. }
  48. function _get_script_url() {
  49. $scriptName = basename($_SERVER['SCRIPT_FILENAME']);
  50. if(basename($_SERVER['SCRIPT_NAME']) === $scriptName) {
  51. $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'];
  52. } else if(basename($_SERVER['PHP_SELF']) === $scriptName) {
  53. $_SERVER['PHP_SELF'] = $_SERVER['PHP_SELF'];
  54. } else if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $scriptName) {
  55. $_SERVER['PHP_SELF'] = $_SERVER['ORIG_SCRIPT_NAME'];
  56. } else if(($pos = strpos($_SERVER['PHP_SELF'],'/'.$scriptName)) !== false) {
  57. $_SERVER['PHP_SELF'] = substr($_SERVER['SCRIPT_NAME'],0,$pos).'/'.$scriptName;
  58. } else if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT']) === 0) {
  59. $_SERVER['PHP_SELF'] = str_replace('\\','/',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
  60. $_SERVER['PHP_SELF'][0] != '/' && $_SERVER['PHP_SELF'] = '/'.$_SERVER['PHP_SELF'];
  61. } else {
  62. return false;
  63. }
  64. return $_SERVER['PHP_SELF'];
  65. }
  66. ?>