设为首页 收藏本站
查看: 2375|回复: 0

[经验分享] Discuz!源代码分析系列:./include/global.func.php(4)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-12-22 08:47:28 | 显示全部楼层 |阅读模式
转自www.discuz.net 作者:郭鑫  复制内容到剪贴板代码:
  /**
  * 用来计算星星月亮太阳显示的
  * @para $num 等级数
  *
  */
  function showstars($num) {
  global $starthreshold;
  $alt = 'alt="Rank: '.$num.'"';
  if(empty($starthreshold)) {
  for($i = 0; $i < $num; $i++) {
  echo '';
  }
  } else {
  for($i = 3; $i > 0; $i--) {
  $numlevel = intval($num / pow($starthreshold, ($i - 1)));
  $num = ($num % pow($starthreshold, ($i - 1)));
  for($j = 0; $j < $numlevel; $j++) {
  echo '';
  }
  }
  }
  }
  复制内容到剪贴板代码:
  /**
  * 得到站点
  *
  * @return string 如: http://discuz.net
  */
  function site() {
  return $_SERVER['HTTP_HOST'];
  }
  复制内容到剪贴板代码:
  /**
  * 这个看成函数重载也无妨,功能就是查找$haystack是不是在$needle中存在
  * @para string $haystack
  * @para string $needle
  *
  * @return boolean
  */
  function strexists($haystack, $needle) {
  return !(strpos($haystack, $needle) === FALSE);
  }
  复制内容到剪贴板代码:
  /**
  * 验证码转换,具体功能用处还没研究
  * @para string $seccode 验证码
  *
  */
  function seccodeconvert(&$seccode) {
  $seccode = substr($seccode, -6);
  $s = sprintf('%04s', base_convert($seccode, 10, 24));
  $seccode = '';
  $seccodeunits = 'BCEFGHJKMPQRTVWXY2346789';
  for($i = 0; $i < 4; $i++) {
  $unit = ord($s{$i});
  $seccode .= ($unit >= 0x30 && $unit  $tplrefresh)) {
  if(@filemtime($tplfile) > @filemtime($objfile)) {
  require_once DISCUZ_ROOT.'./include/template.func.php';
  parse_template($file, $templateid, $tpldir);
  }
  }
  return $objfile;
  }
  复制内容到剪贴板代码:
  /**
  * 得到url中的sid
  * @para string $url
  * @para string tag
  * @para int $wml
  *
  * @return string
  */
  function transsid($url, $tag = '', $wml = 0) {
  global $sid;
  $tag = stripslashes($tag);
  if(!$tag || (!preg_match("/^(http:\/\/|mailto:|#|javascript)/i", $url) && !strpos($url, 'sid='))) {
  if($pos = strpos($url, '#')) {
  $urlret = substr($url, $pos);
  $url = substr($url, 0, $pos);
  } else {
  $urlret = '';
  }
  $url .= (strpos($url, '?') ? ($wml ? '&amp;' : '&') : '?').'sid='.$sid.$urlret;
  }
  return $tag.$url;
  }
  复制内容到剪贴板代码:
  /**
  * 生成主题分类下拉列表
  * @para int $curtypeid 当前选择的id
  *
  * @return string
  */
  function typeselect($curtypeid = 0) {
  if($threadtypes = $GLOBALS['forum']['threadtypes']) {
  $html = '&nbsp;';
  foreach($threadtypes['types'] as $typeid => $name) {
  $html .= ''.strip_tags($name).'';
  }
  $html .= '';
  return $html;
  } else {
  return '';
  }
  }
  复制内容到剪贴板代码:
  /**
  * 更新积分用到的函数
  * @para string $uids 要更新的uid
  * @para array $creditsarray 要更新的积分
  * @para int $coef 单位
  * @para string $extrasql 附加的sql语句
  *
  */
  function updatecredits($uids, $creditsarray, $coef = 1, $extrasql = '') {
  if($uids && ((!empty($creditsarray) && is_array($creditsarray)) || $extrasql)) {
  global $db, $tablepre;
  $creditsadd = $comma = '';
  foreach($creditsarray as $id => $addcredits) {
  $creditsadd .= $comma.'extcredits'.$id.'=extcredits'.$id.'+('.intval($addcredits).')*('.$coef.')';
  $comma = ', ';
  }
  if($creditsadd || $extrasql) {
  $db->query("UPDATE {$tablepre}members SET $creditsadd ".($creditsadd && $extrasql ? ', ' : '')." $extrasql WHERE uid IN ('$uids')", 'UNBUFFERED');
  }
  }
  }
  复制内容到剪贴板代码:
  /**
  * 把session更新一下,更新了如下的表:onlinetime, members, sessions
  */
  function updatesession() {
  if(!empty($GLOBALS['sessionupdated'])) {
  return TRUE;
  }
  global $db, $tablepre, $sessionexists, $sessionupdated, $sid, $onlineip, $discuz_uid, $discuz_user, $timestamp, $lastactivity, $seccode,
  $pvfrequence, $spageviews, $lastolupdate, $oltimespan, $onlinehold, $groupid, $styleid, $invisible, $discuz_action, $fid, $tid, $bloguid;
  $fid = intval($fid);
  $tid = intval($tid);
  if($oltimespan && $discuz_uid && $lastactivity && $timestamp - ($lastolupdate ? $lastolupdate : $lastactivity) > $oltimespan * 60) {
  $lastolupdate = $timestamp;
  $db->query("UPDATE {$tablepre}onlinetime SET total=total+'$oltimespan', thismonth=thismonth+'$oltimespan', lastupdate='$timestamp' WHERE uid='$discuz_uid' AND lastupdate

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654240-1-1.html 上篇帖子: PHP使用json_encode时不支持GB2312编码的解决方案 下篇帖子: PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表