• PHP相关异常


    1. Maximum execution time of 30 seconds exceeded

    报错一:内存超限,具体报错语句忘了,简单说一下解决办法

    1> 利用循环分批导入;
    2> 每个循环内部开始处使用sleep(5);语句,做延迟执行,防止服务器内存同一时间占用过多,里面数字据情况修改;
    3> 每个循环内部结束地方使用 ob_flush();刷新输出缓冲
                                            flush();将当前为止程序的所有输出发送到用户的浏览器
                                            两者必须同时使用来刷新输出缓冲

    报错二:30秒运行超时的错误(Maximum execution time of 30 seconds exceeded)

    解决办法:

    方法一,修改php.ini文件

    max_execution_time = 30; //Maximum execution time of each script, in seconds
    把它设置成需要的值就可以了。如果设置成0的话,就是永不过期。
    方法二,修改php执行文件
    加上
    <?
    set_time_limit(0);
    ?>

    2. PHP中英文 字符串长度计算

    strlen() 函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为 1。一个中午字符占两个字节,所以一个中文字符的长度是 2。例如
    <?php  
       echo strlen("www.sunchis.com");  
       echo strlen("三知开发网");  
    ?>

    “echo strlen("www.sunchis.com");” 的运行结果:15

    “echo strlen("三知开发网");”的运行结果:15

    这里有一个疑问,一个中文字符不是占 2 个字节吗?“三知开发网”,明明是五个汉字,运行的结果怎么会是 15 ?

    原因出在这里:strlen() 计算时,对于一个 UTF-8 的中文字符,会把它当做长度为3来处理。当出现中英文混排的情况下,怎么准确的计算字符串的长度呢?这里,得引入另外一个函数 mb_strlen()。mb_strlen() 函数的用法与 strlen() 几乎一模一样,只是多了一个指定字符集编码的参数。函数原型为:

    int mb_strlen(string string_input, string encode);

    PHP 内置的字符串长度函数  strlen 无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于 GB2312 的中文编码,strlen 得到的值是汉字个数的2倍,而对于 UTF-8 编码的中文,就是 3 倍的差异了(在 UTF-8 编码下,一个汉字占 3 个字节)。 因此,下面的代码能准确计算出中文字符串的长度:

    <?php  
    $str = "三知sunchis开发网";  
    echo strlen($str)."<br>";               //结果:22  
    echo mb_strlen($str,"UTF8")."<br>";     //结果:12  
    $strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2;  
    echo $strlen;                           //结果:17  
    ?>
    原理分析:
        strlen() 计算时,对待 UTF-8 的中文字符长度是 3,所以“三知 sunchis 开发网”的长度为 5×3+7×1=22
        在 mb_strlen 计算时,选定内码为 UTF8,则会将一个中文字符当作长度 1 来计算,所以“三知 sunchis 开发网”长度为 5×1+7×1=12

  • 相关阅读:
    Java开发常用Util工具类
    冒泡排序
    EMQ 消息服务器
    将jar文件包打成exe文件
    mina框架搭建tcp服务器:编写自定义协议及编解码器
    SpringBoot中定时任务的设置
    SpringBoot项目+Shiro(权限框架)+Redis(缓存)集成
    计算两个时间之间的天数
    关于extern的使用
    ADC采样间隔问题+TRGO作为ADC的触发源头
  • 原文地址:https://www.cnblogs.com/likai198981/p/3740745.html
Copyright © 2020-2023  润新知