首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php判断汉字 utf8

基础概念

PHP是一种广泛使用的服务器端脚本语言,特别适用于Web开发。UTF-8是一种针对Unicode的可变长度字符编码,能够覆盖Unicode标准中的所有字符,包括世界上大多数语言的字符。

判断汉字(UTF-8编码)

在PHP中判断一个字符串是否包含汉字,可以通过检查每个字符的Unicode范围来实现。汉字通常位于Unicode的\u4e00\u9fa5之间。

示例代码

代码语言:txt
复制
<?php
function isChinese($str) {
    $len = strlen($str);
    for ($i = 0; $i < $len; $i++) {
        $c = ord($str[$i]);
        if ($c > 127) {
            $h = decbin(ord(substr($str, $i, 1)));
            if (substr_count($h, '1') >= 8) {
                $unicode = hexdec(bin2hex(substr($str, $i, 2)));
                if ($unicode >= 0x4E00 && $unicode <= 0x9FA5) {
                    return true;
                }
            }
        }
    }
    return false;
}

$str = "Hello, 世界!";
if (isChinese($str)) {
    echo "字符串包含汉字";
} else {
    echo "字符串不包含汉字";
}
?>

解释

  1. 函数定义isChinese函数用于判断字符串是否包含汉字。
  2. 遍历字符串:使用for循环遍历字符串中的每个字符。
  3. 检查字符编码:使用ord函数获取字符的ASCII值,如果大于127,则可能是UTF-8编码的多字节字符。
  4. 检查UTF-8编码:通过检查二进制表示中1的数量来判断是否为UTF-8编码的多字节字符。
  5. 检查Unicode范围:将字符转换为Unicode码点,并检查是否在汉字的Unicode范围内(\u4e00\u9fa5)。

应用场景

这个函数可以用于各种需要判断字符串是否包含汉字的场景,例如:

  • 输入验证
  • 文本处理
  • 数据清洗

参考链接

通过这种方式,你可以有效地判断一个字符串是否包含汉字,并根据需要进行相应的处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP汉字转拼音

基于 CC-CEDICT 词典的中文转拼音工具,更准确的支持多音字的汉字转拼音解决方案。...pinyin:~3.0"使用可选转换方案:- 内存型,适用于服务器内存空间较富余,优点:转换快- 小内存型(默认),适用于内存比较紧张的 基于 CC-CEDICT 词典的中文转拼音工具,更准确的支持多音字的汉字转拼音解决方案...缺点:转换慢,不如内存型转换快,php >= 5.5 拼音数组 use Overtrue\Pinyin\Pinyin; // 小内存型$pinyin = new Pinyin(); // 默认// 内存型...name('单某某'); // ['shan', 'mou', 'mou']$pinyin->name('单某某', PINYIN_UNICODE); // ["shàn","mǒu","mǒu"] PHP...将汉字转换拼音是程序员们经常需要操作的任务之一,别看这一小功能却能发挥很大的作用,以上代码是基于PHP如何把汉字转化为拼音的全部叙述

4.1K20
  • php 判断是否对象_php怎么判断对象是否为空

    PHP中判断一个变量是否为空,有多种办法,下面分别来看一下 1.isset功能:判断变量是否被初始化 说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过注意:当使用isset来判断数组元素是否被初始化过时...3. var == null功能:判断变量是否为”空” 说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为 null注意:与empty的显著不同就是:变量未初始化时...PHP中,”NULL” 和 “空” 是2个概念。...isset 主要用来判断变量是否被初始化过 empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE is_null 仅把值为 “NULL” 的变量判断为TRUE...var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE var === null 仅把值为 “NULL” 的变量判断为TRUE 注意:在判断一个变量是否真正为”NULL

    14.9K20

    渗透测试系统学习-Day10

    宽字节注入 1.什么是魔术引号 我们现在要了解一个PHP的防御函数 magic_quotes_gpc() 魔术引号开关 magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有...多字符编码 => 多个字符组在一起成为一个汉字 GBK = 双字节编码 ASCII = 单字节编码 编码不同会有歧义 关于更多的编码方式,在我有一篇讨论MySQL为什么用utfmb4而不用utf8有讲到...为什么不建议在MySQL中使用UTF8?...MySQL字符串编码集中有两套UTF-8编码实现:utf8和utf8mb4如果使用utf8的话,存储emoji符号... 3.宽字节SQL注入的原理 select* from news where id...就逃逸了 3.1宽字节注入过滤原理 PHP发送请求到mysql时经过一次GBK编码,PHP会将获取到的数据进行魔术引号的处理,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字

    55320
    领券