weixin_42384119 2018-12-06 05:25 采纳率: 33.3%
浏览 999
已采纳

php 怎么达到js里的charCodeAt效果

str = $('#txt_ssid7').val();
        var byteSize = 0;
        for (var i = 0; i < str.length; i++) {
            var charCode = str.charCodeAt(i);
            if (0 <= charCode && charCode <= 0x7f) {
                byteSize += 1;
            } else if (128 <= charCode && charCode <= 0x7ff) {
                byteSize += 2;
            } else if (2048 <= charCode && charCode <= 0xffff) {
                byteSize += 3;
            } else if (65536 < charCode && charCode <= 0x1FFFFF) {
                byteSize += 4;
            } else if (0x200000 < charCode && charCode <= 0x3FFFFFF) {
                byteSize += 5;
            } else if (0x4000000 < charCode && charCode <= 0x7FFFFFFF) {
                byteSize += 6;
            }
        }
                if (byteSize > 31) {

        }else {

        }

在tp5中要做一个后台验证,输入的字符不能大于31,老大说汉字三个字符,编码这块搞不懂,就网上找了个js写在前面,后台的找不到,php方法怎么写啊,研究好久研究不出来,帮帮我嘛。

  • 写回答

1条回答 默认 最新

  • 锅巴胸 2018-12-06 06:39
    关注

    下面是判断输入字符串的Unicode值

    <?php
    function uniord($str,$from_encoding=false){
            $from_encoding=$from_encoding ? $from_encoding : 'UTF-8';
    
            if(strlen($str)==1){ return ord($str);} 
    
    
            $str=mb_convert_encoding($str, 'UCS-4BE', $from_encoding);
            $tmp=unpack('N',$str);
            return $tmp[1];
    }
    
    $str="12345,上山打老虎";
    
    $result=array();
    for($i=0,$l=mb_strlen($str,'utf-8');$i<$l;++$i){
            $result[]=uniord(mb_substr($str,$i,1,'utf-8'));
    }
    echo join(",",$result);
    ?>
    

    运行结果:49,50,51,52,53,44,19978,23665,25171,32769,34382

    另外如果仅仅是判断字符串长度:
    字符串不能大于31可以if(strlen($str) <= 31){}
    汉字不超过三个字可以if(mb_strlen($str,'utf-8')<=3){}

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。