近期在学习laravel的使用

以前听说过,当时自己不知道为什么对thinkphp着魔,上手停不下,中文文档写的很好让国人理解,我也就是这其中的国人,那个时候thinkphp5还在测试阶段,有点小关注,发现与原来的使用差距有点大,没有继续看了(因为我懒吧?)

使用thinkphp之前,还有段时间学习过CodeIgniter俗称CI,是真的很小巧,小巧到很尴尬的境地,具体

当然,由于它的小巧再实现一些微型项目时,用用还是挺方便的,使用要求也没什么,基本就是上传即可开始使用。

因为我懒,于是就有放弃CI使用thinkphp的历史痕迹了

最近接触了laravel大家说的优雅是有其它的道理的

  1. 使用composer来管理依赖,抛弃手动require
  2. 结合php命令行操作
  3. 清晰有条理的路由管理
  4. 目录命名用意一目了然
  5. Eloquent ORM
  6. 查询构造器
  7. 结合bootstrap做成小demo非常快速(5.4修改源码可以使用bootstrap4相关)
  8. 目前我使用后的特性,还有许多我还没接触到的特性...

就在这些学习的过程中,感觉自己是可以有一定能力开发的

但是!!!深刻的感受到自己的基础知识脆弱不堪,理论体系非常不完善,缺口巨大

如:自己以前文章的内容有一长串字符串的出现,由于其中夹杂着中英文,做出的截取不能使用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() 还是感觉好用点,精确到字节操作

标签: 理论体系, 杂谈

添加新评论