php使用mb_check_encoding检查字符串在指定的编码里是否有效_php实例

mb_check_encoding — 检查字符串在指定的编码里是否有效
PHP 版本要求: (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)
说明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。
参数
var
要检查的字节流。如果省略了这个参数,此函数会检查所有来自最初请求所有的输入。
encoding
期望的编码。
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
为了检查是否一个字符串编码正确在utf - 8中,我建议以下函数实现 mb_check_encoding():

复制代码 代码如下:

<?php
function check_utf8($str) {
    $len = strlen($str);
    for($i = 0; $i < $len; $i++){
        $c = ord($str[$i]);
        if ($c > 128) {
            if (($c > 247)) return false;
            elseif ($c > 239) $bytes = 4;
            elseif ($c > 223) $bytes = 3;
            elseif ($c > 191) $bytes = 2;
            else return false;
            if (($i + $bytes) > $len) return false;
            while ($bytes > 1) {
                $i++;
                $b = ord($str[$i]);
                if ($b < 128 || $b > 191) return false;
                $bytes--;
            }
        }
    }
    return true;
} // end of check_utf8
?>

时间: 2024-07-28 16:17:11

php使用mb_check_encoding检查字符串在指定的编码里是否有效_php实例的相关文章

php实现将字符串按照指定距离进行分割的方法_php技巧

本文实例讲述了php实现将字符串按照指定距离进行分割的方法.分享给大家供大家参考.具体如下: 将一个字符串每隔三个字符添加一个逗号,例如把字符串1234567890转换为1,234,567,890,这种做法在金融领域非常常见 <?php /** * 每隔3个字符,用逗号进行分隔 * @param string $str * @return string */ function splitStrWithComma ($str) { $arr = array(); $len = strlen($st

php检查字符串中是否有外链的方法_php技巧

本文实例讲述了php检查字符串中是否有外链的方法.分享给大家供大家参考.具体实现方法如下: /** * is_external_link 检测字符串是否包含外链 * @param string $text 文字 * @param string $host 域名 * @return boolean false 有外链 true 无外链 * / function all_external_link($text = '', $host = '') { if (empty($host)) $host =

php in_array() 检查数组中是否存在某个值详解_php实例

php in_array() 检查数组中是否存在某个值 in_array检查数组中是否存在某个值 基本语法: bool in_array(mixed $needle,array $haystack,bool $strict=FALSE) 在 haystack 中搜索 needle 参数介绍 参数 描述 needle 必需.规定要在数组搜索的值.如果是字符串,则比较是区分大小写的. haystack 必需.规定要搜索的数组. strict 可选.如果设置该参数为 true,则 in_array()

浅谈PHP检查数组中是否存在某个值 in_array 函数_php实例

PHP in_array() 函数检查数组中是否存在某个值,如果存在则返回 TRUE ,否则返回 FALSE . 语法: bool in_array( mixed needle, array array [, bool strict] ) 参数说明: 参数 说明 needle 需要在数组中搜索的值,如果是字符串,则区分大小写 array 需要检索的数组 strict 可选,如果设置为 TRUE ,则还会对 needle 与 array 中的值类型进行检查 例子: <?php $arr_a = a

php简单实现屏蔽指定ip段用户的访问_php实例

这段时间在统计工具里面总是看到一些未知浏览器.未知操作系统的用户的频繁请求而且ip都在一个段里面,使我产生了一些疑问,这些用户算是有效用户吗.网站访问没有浏览器没有操作系统的记录,我经过几天的分析确认这些访问不是人在访问而是一些机器或者是别人在采集我的站内的东西,萌生了一种屏蔽这个ip的想法. 把统计里面的没有浏览器记录的用户数据导出来看了下屏蔽ip已经不现实了ip不少一百多个,但是仔细观看不难看出这些ip都集中在某些ip断内.想个办法屏蔽整个ip段的用户,也许会造成一些误杀但是能确保网站流量是

PHP判断指定时间段的2个方法_php实例

一.包含小时和分钟的判断 date_default_timezone_set("Asia/Shanghai"); $time = intval (date("Hi")); if ($time > "800" && $time < "1130") { // code } 二.只判断小时 date_default_timezone_set("Asia/Shanghai"); if(d

ThinkPHP的截取字符串函数无法显示省略号的解决方法_php实例

对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $le

jQuery实现字符串按指定长度加入特定内容的方法

 这篇文章主要介绍了jQuery实现字符串按指定长度加入特定内容的方法,实例分析了jQuery操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery实现字符串按指定长度加入特定内容的方法.分享给大家供大家参考.具体分析如下: 最近的一个项目中需要将手机号码按一定长度用标识符隔开,便于阅读,网上找了一会发现没有合适的代码于是就自己手写了一个函数,可以按指定长度往字符串中插入分隔符,有需要的朋友可以拿去. ? 1 2 3 4 5 6 7 8 9 10 11

php实现将字符串按照指定距离进行分割的方法

 本文实例讲述了php实现将字符串按照指定距离进行分割的方法.分享给大家供大家参考.具体如下: 将一个字符串每隔三个字符添加一个逗号,例如把字符串1234567890转换为1,234,567,890,这种做法在金融领域非常常见 <?php /** * 每隔3个字符,用逗号进行分隔 * @param string $str * @return string */ function splitStrWithComma ($str) { $arr = array(); $len = strlen($s