PHP 常用自定义方法函数汇总

分类:PHP |

20170310 : 第一版,微信,阿里判断,utf-8 解决中文截取乱码问题


/**
 * @desc 判断是否是 微信 浏览器
 * @return bool
 */
public static function isWxBrowser()
{
    if (!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
        return true;
    }
    return false;
}
/**
 * @desc 判断是否是 支付宝钱包 浏览器
 * @return bool
 */
public static function isAliBrowser()
{
    if (!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'AliApp') !== false) {
        return true;
    }
    return false;
}
/**
   * @desc utf-8 解决中文截取乱码问题
   * @param type $str 指字符串
   * @param type $start 指字符串的起始位置
   * @param type $len 指字符串长度
   * @return type
   */
  public static function chineseSubstr($str, $start, $len)
  {
      $tmpstr = '';
      $strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度
      for ($i = $start; $i < $strlen;) {
          if (ord(substr($str, $i, 1)) > 0xa0) { // 如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字
              $tmpstr .= substr($str, $i, 3); // 每次取出三位字符赋给变量$tmpstr,即等于一个汉字
              $i = $i + 3; // 变量自加3
          } else {
              $tmpstr .= substr($str, $i, 1); // 如果不是汉字,则每次取出一位字符赋给变量$tmpstr
              $i++;
          }
      }
      return $tmpstr; // 返回字符串
  }