PageRenderTime 27ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/code/apps/myop/function.php

http://thinksns-2.googlecode.com/
PHP | 177 lines | 133 code | 13 blank | 31 comment | 26 complexity | 40bc75cd6987728143a511b5f6734b8c MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. //????
  3. function getmyopurl() {
  4. $uri = $_SERVER['REQUEST_URI'] ? $_SERVER['REQUEST_URI'] : ( $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'] );
  5. return shtmlspecialchars('http://'.$_SERVER['HTTP_HOST'].substr($uri, 0, strrpos($uri, '/')));
  6. }
  7. //????
  8. function my_site_register($siteKey, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteRealNameEnable, $siteRealAvatarEnable, $siteLanguage, $siteVersion, $myVersion) {
  9. global $_MY_GLOBAL;
  10. $siteName = urlencode($siteName);
  11. $postString = sprintf('action=%s&siteKey=%s&siteName=%s&siteUrl=%s&ucUrl=%s&siteCharset=%s&siteTimeZone=%s&siteRealNameEnable=%s&siteRealAvatarEnable=%s&siteLanguage=%s&siteVersion=%s&myVersion=%s', 'siteRegister', $siteKey, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteRealNameEnable, $siteRealAvatarEnable, $siteLanguage, $siteVersion, $myVersion);
  12. $response = uc_fopen2($_MY_GLOBAL['my_register_url'], 0, $postString, '', false, '');
  13. $res = unserialize($response);
  14. if (!$response) {
  15. $res['errCode'] = 111;
  16. $res['errMessage'] = 'Empty Response';
  17. $res['result'] = $response;
  18. } elseif(!$res) {
  19. $res['errCode'] = 110;
  20. $res['errMessage'] = 'Error Response';
  21. $res['result'] = $response;
  22. }
  23. return $res;
  24. }
  25. //????
  26. function my_site_refresh($mySiteId, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteEnableRealName, $siteEnableRealAvatar, $mySiteKey, $siteKey, $siteLanguage, $siteVersion, $myVersion) {
  27. global $_MY_GLOBAL;
  28. $key = $mySiteId . $siteName . $siteUrl . $ucUrl . $siteCharset . $siteTimeZone . $siteEnableRealName . $mySiteKey . $siteKey;
  29. $key = md5($key);
  30. $siteName = urlencode($siteName);
  31. $postString = sprintf('action=%s&key=%s&mySiteId=%d&siteName=%s&siteUrl=%s&ucUrl=%s&siteCharset=%s&siteTimeZone=%s&siteEnableRealName=%s&siteEnableRealAvatar=%s&siteKey=%s&siteLanguage=%s&siteVersion=%s&myVersion=%s', 'siteRefresh', $key, $mySiteId, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteEnableRealName, $siteEnableRealAvatar, $siteKey, $siteLanguage, $siteVersion, $myVersion);
  32. $response = uc_fopen2($_MY_GLOBAL['my_register_url'], 0, $postString, '', false, '');
  33. $res = unserialize($response);
  34. if (!$response) {
  35. $res['errCode'] = 111;
  36. $res['errMessage'] = 'Empty Response';
  37. $res['result'] = $response;
  38. } elseif(!$res) {
  39. $res['errCode'] = 110;
  40. $res['errMessage'] = 'Error Response';
  41. $res['result'] = $response;
  42. }
  43. return $res;
  44. }
  45. //????
  46. function my_site_close($mySiteId, $mySiteKey) {
  47. $key = $mySiteId . $mySiteKey;
  48. $key = md5($key);
  49. $postString = sprintf('action=%s&key=%s&mySiteId=%d', 'siteClose', $key, $mySiteId);
  50. $response = uc_fopen2($_MY_GLOBAL['my_register_url'], 0, $postString, '', false, '');
  51. $res = unserialize($response);
  52. if (!$response) {
  53. $res['errCode'] = 111;
  54. $res['errMessage'] = 'Empty Response';
  55. $res['result'] = $response;
  56. } elseif(!$res) {
  57. $res['errCode'] = 110;
  58. $res['errMessage'] = 'Error Response';
  59. $res['result'] = $response;
  60. }
  61. return $res['result'];
  62. }
  63. /**
  64. * ????URL
  65. * @param string $url ???url??? http://www.baidu.com/123.htm
  66. * @param int $limit ?????????
  67. * @param string $post ???? POST ????uid=1&password=1234
  68. * @param string $cookie ???? COOKIE ????uid=123&auth=a2323sd2323
  69. * @param bool $bysocket TRUE/FALSE ????SOCKET??
  70. * @param string $ip IP??
  71. * @param int $timeout ??????
  72. * @param bool $block ???????
  73. * @return ??????
  74. */
  75. function uc_fopen2($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) {
  76. $__times__ = isset($_GET['__times__']) ? intval($_GET['__times__']) + 1 : 1;
  77. if($__times__ > 2) {
  78. return '';
  79. }
  80. $url .= (strpos($url, '?') === FALSE ? '?' : '&')."__times__=$__times__";
  81. return uc_fopen($url, $limit, $post, $cookie, $bysocket, $ip, $timeout, $block);
  82. }
  83. function uc_fopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) {
  84. $return = '';
  85. $matches = parse_url($url);
  86. !isset($matches['host']) && $matches['host'] = '';
  87. !isset($matches['path']) && $matches['path'] = '';
  88. !isset($matches['query']) && $matches['query'] = '';
  89. !isset($matches['port']) && $matches['port'] = '';
  90. $host = $matches['host'];
  91. $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
  92. $port = !empty($matches['port']) ? $matches['port'] : 80;
  93. if($post) {
  94. $out = "POST $path HTTP/1.0\r\n";
  95. $out .= "Accept: */*\r\n";
  96. //$out .= "Referer: $boardurl\r\n";
  97. $out .= "Accept-Language: zh-cn\r\n";
  98. $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
  99. $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
  100. $out .= "Host: $host\r\n";
  101. $out .= 'Content-Length: '.strlen($post)."\r\n";
  102. $out .= "Connection: Close\r\n";
  103. $out .= "Cache-Control: no-cache\r\n";
  104. $out .= "Cookie: $cookie\r\n\r\n";
  105. $out .= $post;
  106. } else {
  107. $out = "GET $path HTTP/1.0\r\n";
  108. $out .= "Accept: */*\r\n";
  109. //$out .= "Referer: $boardurl\r\n";
  110. $out .= "Accept-Language: zh-cn\r\n";
  111. $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
  112. $out .= "Host: $host\r\n";
  113. $out .= "Connection: Close\r\n";
  114. $out .= "Cookie: $cookie\r\n\r\n";
  115. }
  116. $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
  117. if(!$fp) {
  118. return '';//note $errstr : $errno \r\n
  119. } else {
  120. stream_set_blocking($fp, $block);
  121. stream_set_timeout($fp, $timeout);
  122. @fwrite($fp, $out);
  123. $status = stream_get_meta_data($fp);
  124. if(!$status['timed_out']) {
  125. while (!feof($fp)) {
  126. if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {
  127. break;
  128. }
  129. }
  130. $stop = false;
  131. while(!feof($fp) && !$stop) {
  132. $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
  133. $return .= $data;
  134. if($limit) {
  135. $limit -= strlen($data);
  136. $stop = $limit <= 0;
  137. }
  138. }
  139. }
  140. @fclose($fp);
  141. return $return;
  142. }
  143. }
  144. function random($length, $numeric = 0) {
  145. PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
  146. if($numeric) {
  147. $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
  148. } else {
  149. $hash = '';
  150. $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
  151. $max = strlen($chars) - 1;
  152. for($i = 0; $i < $length; $i++) {
  153. $hash .= $chars[mt_rand(0, $max)];
  154. }
  155. }
  156. return $hash;
  157. }
  158. //????key
  159. function mksitekey() {
  160. global $_MY_GLOBAL;
  161. //16?
  162. $sitekey = substr(md5($_SERVER['SERVER_ADDR'].$_SERVER['HTTP_USER_AGENT'].substr($_MY_GLOBAL['timestamp'], 0, 6)), 8, 6).random(10);
  163. return $sitekey;
  164. }