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
PHP相关异常的更多相关文章
- eureka相关异常
1. eureka相关异常 1.1. 异常信息 Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bea ...
- (转载)Spring的refresh()方法相关异常
如果是经常使用Spring,特别有自己新建ApplicationContext对象的经历的人,肯定见过这么几条异常消息:1.LifecycleProcessor not initialized - c ...
- Spring的refresh()方法相关异常
如果是经常使用Spring,特别有自己新建ApplicationContext对象的经历的人,肯定见过这么几条异常消息:1.LifecycleProcessor not initialized - c ...
- SQLite相关异常
SQLite的异常大多都和异常IO操作有关,这类异常通常在debug测试的时候难以发现通常和用户的操作有关系,根据我遇到的包括以下几种: 1.No transaction is active 这种情况 ...
- 【原】Maven解决jar冲突调试步骤:第三方组件引用不符合要求的javassit导致的相关异常
[环境参数]开发框架:Spring + MyBatis + SpringMVC + KettleJDK版本:1.8.0_91javassist依赖版本:javassit-3.12.1.GA [障碍再现 ...
- Java基础 throws 提示调用方法时要注意处理相关异常
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- 【Nutch2.2.1基础教程之1】nutch相关异常
1.在任务一开始运行,注入Url时即出现以下错误. InjectorJob: Injecting urlDir: urls InjectorJob: Using class org.apache.go ...
- windows 10下oracle相关异常及处理方法
话说起来,不以oracle性能优化,数据库维护为主业已经有四五年了,这两年基本上以mysql为主. pl/sql登录后提示空白对话框.将ORACLE_HOME设置为oracle 11g的目录. IMP ...
- hive 相关异常
内存不够: set mapreduce.map.memory.mb=4096;set mapreduce.map.java.opts=-Xmx3280m; set mapreduce.reduce.m ...
随机推荐
- 25. Green Living 绿色生活
25. Green Living 绿色生活 ①We all know that humans are damaging the environment,but what can we do about ...
- ansible-playbook 主机变量1
hosts 配置后可以支持指定 端口,密码等其他变量 [root@10_1_162_39 host_vars]# ll total -rw-r--r-- root root May : hosts - ...
- 9) 依赖查询 & 镜像站
依赖查询 http://mvnrepository.com/ Maven仓库查询 http://search.maven.org 仓库 加上这两个,如果使用中央仓库 Eclipse 极有可能会卡死 & ...
- netty 原理
netty 实现 1. 各组件之间的关系 每个ServerBootstrap与一个事件循环对象(一个线程)都会与一个Channel绑定,如NioServerSocketChannel 2. 如何绑定 ...
- OpenGl 坐标转换 (转载)
OpenGl 坐标转换 (转载) 1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Tr ...
- ESP32应用程序的内存布局
应用程序内存布局 ESP32芯片具有灵活的内存映射功能.本节介绍ESP-IDF在默认情况下如何使用这些功能. ESP-IDF中的应用程序代码可以放置在以下内存区域之一中. IRAM(指令RAM) ES ...
- 【TypeScript】TypeScript 学习 2——接口
在 TypeScript 中,接口是用作约束作用的,在编译成 JavaScript 的时候,所有的接口都会被擦除掉,因为 JavaScript 中并没有接口这一概念. 先看看一个简单的例子: func ...
- Debezium for PostgreSQL to Kafka
In this article, we discuss the necessity of segregate data model for read and write and use event s ...
- Feed back TFS 2017 RC upgrade status to product team in product group 2017.03.01
作为微软的MVP,有一个我最喜欢的好处,就是可以与产品组(产品研发部门)有零距离接触,可以最先拿到即将发版的产品,并且和产品组沟通,对产品中出现的问题实时反馈. 看到TFS产品组吸收了自己的建议和反馈 ...
- ES6 学习笔记之三 函数参数默认值
定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类 ...