学习审视
近期在学习laravel的使用
以前听说过,当时自己不知道为什么对thinkphp着魔,上手停不下,中文文档写的很好让国人理解,我也就是这其中的国人,那个时候thinkphp5还在测试阶段,有点小关注,发现与原来的使用差距有点大,没有继续看了(因为我懒吧?)
使用thinkphp之前,还有段时间学习过CodeIgniter俗称CI,是真的很小巧,小巧到很尴尬的境地,具体
当然,由于它的小巧再实现一些微型项目时,用用还是挺方便的,使用要求也没什么,基本就是上传即可开始使用。
因为我懒,于是就有放弃CI使用thinkphp的历史痕迹了
最近接触了laravel大家说的优雅是有其它的道理的
- 使用composer来管理依赖,抛弃手动require
- 结合php命令行操作
- 清晰有条理的路由管理
- 目录命名用意一目了然
- Eloquent ORM
- 查询构造器
- 结合bootstrap做成小demo非常快速(5.4修改源码可以使用bootstrap4相关)
- 目前我使用后的特性,还有许多我还没接触到的特性...
就在这些学习的过程中,感觉自己是可以有一定能力开发的
但是!!!深刻的感受到自己的基础知识脆弱不堪,理论体系非常不完善,缺口巨大
如:自己以前文章的内容有一长串字符串的出现,由于其中夹杂着中英文,做出的截取不能使用substr(),而要使用 mb_substr(),但是这里的bug是中文是3个字符(使用的utf-8编码),英文只占1个字符,对中英文混合输入的bug必然是会出现乱码的。
"这是一段abc字符串123大家壕"
使用 strlen() 与 mb_strlen() 结果
echo strlen("这是一段abc字符串123大家壕");
// 输出 36
echo mb_strlen("这是一段abc字符串123大家壕");
// 输出 16
使用 mb_substr() 截取前6个字符
echo mb_substr("这是一段abc字符串123大家壕", 0, 6);
当然你会说,这个没有问题好嘛,substr() 就是把每个字*3了
是的,没有错,但是这一切的前提下,全部是utf-8的编码集
echo mb_substr("这是一段abc字符串123大家壕", 0, 6, "gbk");
// 这是一��
这个小例子的实现让我简单的思考了一下接下来的学习进展,放慢脚步,深入的学习语言现有所带来的特性,充分利用自带功能,何必在自造轮子(我想我造出来的轮子应该是没有自带的好用的)
潜心,静气,思考
--------------------- 分割线 ---------------------------
另外 mb_strcut() 对比 mb_substr() 还是感觉好用点,精确到字节操作