前端-显示背景图片中心区域

0x00 前言最近接到个关于移动端适配的任务,因为希望复用 PC 端的数据所以有些东西实现起来比较麻烦,比如现在讨论的显示图片中心区域。原需求是这样的:在图片比例和要显示的容器比例一致时直接按比例缩放就好,但是如果图片比例和容器比例不一致,这时候就要以容器的比例为准,显示图片的中心区域。原谅我苍白的文字描述,下面...

Laravel 生命周期解析

0x00 前言闲来无事看看 Laravel 源码,初步了解一下其生命周期方便理解和使用它。 0x01 从入口文件开始因为 Laravel 是单一入口的框架,所以我们第一步从 public/index.php 这个文件读起。 以下代码均基于 Laravel 5.7,原注释被本人替换。 123456789101112...

HTTPS 是如何提供加密通信?

0x00 前言由于谷歌的推动和大家对网络安全的需求,HTTPS 协议开始广泛的使用了。作为开发者也应该去积极的了解,所以写篇博文在「如何提供加密通信」的角度,谈一谈 HTTPS 协议。 0X01 加密通信在 Web 领域的难点我们知道 HTTP 协议是明文传输的协议,所以容易被第三方窃听、篡改、冒充,给用户隐私和...

初识 NodeMCU - 固件的编译及使用

0x00 前言不知不觉一个月没有更新博客了/(ㄒoㄒ)/~~,因为这段时间都在忙着写毕业设计。嗯,就是本文的主题 NodeMCU,它是一款基于 Lua 的开源固件,能够在 ESP8266 这款 WiFi 芯片上使用。而我的毕设主题……嗯,又是随大流的智能家居,所以第一个要实现的模块就是智能插座,相对于繁琐的 C ...

PHP 依赖注入容器实现

0x00 前言在看 Laravel 文档的时候发现入门指南的下一章便是核心架构,对于我这种按部就班往下读的同学这简直是劝退篇。各种之前没有接触过的概念砸得人头晕,容器便是其中之一。不过在拜读过几篇文章后也逐渐理解了容器的作用,所以特此总结一番。 0x01 为何要有容器?这个问题可以也可以替换为「容器解决了什么问题...

MySQL 事务隔离实验-认识:脏读、不可重复读、幻读

0x00 前言大家也许听说过 MySQL 的事务在高并发执行的时候可能会发生脏读、不可重复读、幻读等问题。对于有处理高并发经验的老鸟,可能认知会更深一些所以觉得 so easy~「老鸟请点红叉离开,或者发起友好评论O(∩_∩)O哈哈~」,不过对于像我这种难以接触到高并发业务场景的初学者来说,也就只能看几篇博文,了...

PHP 数组底层实现

0x00 前言最近在看《PHP 内核剖析》,关于 PHP 数组方面有所得,特此撰文一篇总结记录 (∩_∩)。因为 PHP 的数组是很强大且很重要的数据类型,它既支持单纯的数组又支持键值对数组,其中键值对数组类似于 Go 语言的 map 但又保证了能够按顺序遍历,并且由于采用了哈希表实现能够保证基本查找时间复杂度...

HTML 表单之不得不知 enctype

0x00 前言初学 Web 编程的时候发现想通过 HTML 表单上传文件的时候发现只需要简单的设置 form 标签的 enctype 属性为 multipart/form-data 便能成功的实现,后面才知道其实这是在设置表单内容的编码并且设置 HTTP 请求头的 Content-Type 属性。而在 W3C 标...

PHP 面向 StackOverflow 编程

0x00 前言我从 Laravel 接触到了 Whoops,这款非常好的错误展示包,虽然它提供了一个根据错误信息跳转到 StackOverflow 搜索页的链接,但对于我这种懒人来说当然是希望在报错页面显示根据错误信息搜索出来的结果啊。嗯,然后我就造了这个玩意 whoops-stackoverflow。 0x01...

Slim 框架源码解读

0x00 前言Slim 是由《PHP The Right Way》作者开发的一款 PHP 微框架,代码量不算多(比起其它重型框架来说),号称可以一下午就阅读完(我觉得前提是熟悉 Slim 所用的组件)。不过比起其它框架来说真的还算容易阅读的了,所以是比较适合我这种新手学习一款框架。因为文章篇幅限制所以采用抓大放小...