PHP中的pack和unpack函数

2019-02-24
阅读 5 分钟
7.5k
PHP有两个重要的冷门函数:pack和unpack。在网络编程,读写图像文件等场景,这两个函数几乎必不可少。鉴于文件读写/网络编程,或者说字节流处理的重要性,掌握这两个函数是迈向高级PHP编程的基础。

bash快捷键整理

2019-02-10
阅读 2 分钟
1.7k
今天敲命令行时想在单词间移动,竟然不记得快速移动的快捷键。试了Ctrl + W和Ctrl + B/F均不凑效,于是怀念之前某博主分享的终端快捷键说明图。

rsync同步和备份文件到本地

2019-02-10
阅读 3 分钟
5.3k
最近使用rsync时发现一个问题:PC和移动硬盘之间用rsync同步,修改过的二进制大文件会整个文件重传,效率十分低下。说好的rsync只传输差异部分呢?还是二进制文件的问题?但rsync的man手册明明这样写的:

开源磁盘加密软件VeraCrypt教程

2019-02-10
阅读 5 分钟
10.5k
VeraCrypt是一款开源的磁盘加密软件,前身是大名鼎鼎的TrueCrypt。2014年5月微软停止Windows XP的支持,TrueCrypt的作者认为Win7及后续版本内置的BitLocker足够好用,TrueCrypt不再那么必要,于是同月停止了TrueCrypt的开发。目前TrueCrypt的官网永久重定向到TrueCrypt的Sourceforge项目主页,并警告用户TrueCrypt含有未...

推荐一款贴心的办公辅助软件-Awareness

2019-02-03
阅读 1 分钟
1.7k
Awareness的功能非常简单:告诉你在电脑上工作了多久并在整点提醒你 。其设计理念是让用户知道自己已经用了多久的电脑,于是可以在必要时停下手头的工作,站起来泡咖啡、上厕所走动一下,或者伸懒腰、做深呼吸放松身体,劳逸结合以便长时间高效地工作。

C++类中的特殊成员函数

2019-02-03
阅读 2 分钟
3.5k
C++类中有几个特殊的非静态成员函数,当用户未定义这些函数时,编译器将给出默认实现。C++11前有四个特殊函数,C++11引入移动语义特性,增加了两个参数为右值的特殊函数。这六个函数分别是:

C++函数修饰符总结

2019-02-03
阅读 2 分钟
4.4k
返回值类型返回值类型是C++中定义函数的必备部分,这些修饰符包括void,(unsigned) int,bool等内置基本数据类型和自定义类型,也包括修饰返回值const关键字(如const int*),还包括C++11中新增的类型自动推导auto关键字。

C++中的&和&&

2018-12-19
阅读 2 分钟
22.9k
转载请注明文章出处:[链接] C++的&符号有三种用途,而&&有两种。本文对这两个运算符的用途做简要总结。 &的用途 第一种用途:位运算中的“与”(AND)。位运算十分高效,数据分片时常会用到,例如网络数据报头、IP地址段、UTF-8编码等。 第二种用途:取地址。这个功能在C中比较常见,比如取函数地址、变...

Windows上的Redis

2018-09-14
阅读 2 分钟
3.8k
Redis是一个高性能的内存型NoSQL数据库,是服务端开发中常用的软件。Redis官方支持*nix、BSD等系统,没有提供对Windows平台的支持。Windows平台上的Redis由微软开发,但微软目前暂停了对其的支持和维护。微软Redis的Github仓库是 MicrosoftArchive/redis,最后发布的版本是两年前的3.2.100。

PHP回顾之协程

2018-09-13
阅读 5 分钟
2.4k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 流 Socket编程 多进程编程 执行流程及相关概念 PHP自5.5起引入了生成器(Generator),基于其可实现协程编程。本文先回顾生成器,然后过渡到协程编程。 yield与生成器 ...

Nginx的upstream_response_time

2018-08-27
阅读 3 分钟
7.3k
转载请注明文章出处:[链接] 前几日为了查看FPM的性能,在Nginx的配置里增加FPM响应时间的header: {代码...} 今天闲来查看网页的响应头,发现值与预期的不一致: 要说153毫秒我是相信的,那么数值的单位是纳秒。但这不符合常理:1. 印象中upstream_response_time的单位是毫秒;2. 如果单位是纳秒,就不应该有小数点,精...

解决Windows上编译PHP7.1拓展的错误

2018-08-20
阅读 2 分钟
3.3k
第一个问题是VC15(visual studio 2017)不能编译PHP7.1的拓展,所以需要安装VC14(visual studio 2015)或其编译工具。从巨硬官网下载2015要登录,还要订阅“Visual Studio Dev Essentials”计划。看着安装程序显示需要占用9个G的硬盘空间,50G的C盘同样感到菊紧。

Windows编译PHP7.2拓展

2018-08-14
阅读 2 分钟
4.5k
转载请注明文章出处:[链接] 准备工作 [链接]下载PHP-SDK(在右边的“clone or download”点击,选择下方的“download zip”); [链接]下载PHP7.2的源码,此时最新版本是7.2.8,选择“php-7.2.8-src.zip”下载; [链接]选择“visual studio community 2017”,安装过程中选择C++功能。 编译 新建编译目录,例如“D:PHP2Compile”...

Nginx配置fastcgi cache

2018-08-07
阅读 2 分钟
4.5k
在尝试Ghost中提到过托管博客的VPS由于内存不足导致服务宕机。今天意识到可以通过Nginx缓存避免请求落到PHP和MySQL端,提升整体性能。此外博客发布后很少改动,读多写少,是使用缓存(或静态化)的好场景。

尝试Ghost

2018-07-07
阅读 2 分钟
3.1k
今早醒来后看到有新邮件,提醒七点期间博客宕机了十几分钟。连上服务器看Nginx记录,发现期间有人用开源爬虫工具密集访问站点,导致后续请求耗时巨长,最终都返回了499错误码。前往服务器控制台查看CPU使用情况,七点时有一段陡峭的使用率飙升曲线。所以宕机是突发请求加WordPress性能引起。

PHP回顾之执行流程及相关概念

2018-07-02
阅读 2 分钟
4.5k
转载请注明文章出处:[链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 流 Socket编程 多进程编程 本文总结PHP的执行流程以及相关概念。 程序架构 先看看运行一个PHP程序需要哪些支撑。一切的起点,要从程序员开始写PHP才有意义,所以应用...

PHP回顾之多进程编程

2018-06-24
阅读 9 分钟
3.9k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 流 Socket编程 为了更好的利用多核CPU,我们需要多进程或多线程。但在常规web开发中,我们极少用到这两种并发技术(curl_multi等特殊函数除外)。如果脚本运行在CLI...

PHP回顾之socket编程

2018-06-23
阅读 6 分钟
5.5k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 流 web开发一直是PHP的主战场,也是PHP最为被世人所熟知的一面。其实只要你愿意去发掘,PHP除了做网页在许多其他方面也是小能手。 本文简要介绍PHP的Socket编程。 准...

PHP定时器那点事

2018-06-21
阅读 3 分钟
3.6k
常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表;另一种在指定时间后执行(一次),例如会员登录系统五分钟后发放每日登录奖励。两种情况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数类似(严格来说setInterval是周期性执行,指定时间点执行需要自行处理)。

配置mail使用SMTP发送邮件

2018-06-02
阅读 4 分钟
14.4k
先看一下三者的关系:mail是mailx的别名,最初叫nail(与arch linux目前用的S nail基因相同);mail是Heirloom的一个子项目,sendmail是Eric Allman的作品,都是开源项目;mail是用户代理(客户端),sendmail是邮件传输代理(服务器);mail默认使用sendmail对外发送邮件。

PHP回顾之流

2018-05-28
阅读 7 分钟
10.2k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 上篇 “PHP回顾之IO” 提到读取文件、网络通信等操作,本质上是与 “流(stream)” 打交道。流机制是许多编程语言的重要机制,程序通过流可自由操作文件、内存、网络等设...

PHP中的重载

2018-05-22
阅读 3 分钟
3.5k
先区分一下重载(overload)和重写(override):重载指多个名字相同,但参数不同的函数在同一作用域并存的现象;重写出现在继承中,指子类重定义父类功能的现象,也被称为覆盖。重载中说的参数不同有三种情况:参数个数不同,参数类型不同,参数顺序不同。重写一般指函数的覆盖,即相同签名的成员函数在子类中重新定义(实...

非对称加密和证书总结

2018-05-19
阅读 6 分钟
3.4k
前几日做支付对接时,被对方文档中的加密方式搞晕乎了一会。意识到证书加密方面的理解不够深入,事后查阅参考资料补习一波。本文是根据期间的学习,以及长期以来的实践做出的总结。

Mina的WebSocket问题排查

2018-05-16
阅读 6 分钟
3.1k
项目的客户端需要重构,探讨后决定客户端与服务器的交互使用WebSocket协议。后端的网络层框架是Mina,在现有基础上增加对WebSocket的解析即可完成无缝迁移。正好Apache讨论组上有人提供Mina的WebSocket过滤器代码。下载后添加到项目,扔到服务器上一切正常。

log4j配置总结

2018-05-15
阅读 4 分钟
3.6k
log4j是阿帕奇日志服务(Apache Logging Services)旗下的一款强大的开源日志输出工具。log4j使用上简洁便利,高效且拓展性强,几乎是Java编程的必备依赖包。除Java专用的log4j,阿帕奇日志服务网站还有log4net、log4php等其他编程语言对应的包。

PHP回顾之IO

2018-05-05
阅读 4 分钟
2.7k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 无论哪种编程语言,IO操作都值得好好学习和理解。由于PHP简单的特性,不少人对此毫无概念也能写出可用的代码。本文总结PHP开发中几个常见的IO场景并介绍对应的操作,希...

PHP回顾之发送邮件

2018-04-15
阅读 5 分钟
3.5k
转载请注明文章出处: [链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件是网站的常用功能,用户激活、找回密码等场景常需要发送邮件到用户邮箱。本文先回顾发送邮件的相关概念,再给出使用PHP发送邮件的示例代码。 发送短信 从功能上看,短信...

PHP回顾之创建自己的Composer包

2018-04-08
阅读 4 分钟
4.7k
转载请注明文章出处:[链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 前文 PHP回顾之Composer 简要介绍了Composer的相关概念和简要用法,应付日常开发已无大碍。想要更好的利用Composer协同工作,学会创建自己的Composer包是一项必不可少的技能。本文先讲解Composer仓库的...

PHP回顾之Composer

2018-04-01
阅读 4 分钟
2.8k
转载请注明文章出处:[链接] PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer是PHP社区推荐的依赖管理工具。Composer之于PHP犹如npm之于Node,几乎是做现代化PHP开发的必备技能。本文简要回顾相关概念和Composer用法。 拓展和包 与之相关的概念是框架和库,关于框架和库的区别,可...

字符串、unicode和UTF8编码之间的互相转换

2018-03-25
阅读 3 分钟
13.5k
想知道某个字符串的UTF8编码,图方便打算使用在线工具。坑爹的是,号称“UTF8汉字互转”的网页几乎全是字符串和unicode码点互转,并不提供与UTF8编码互转功能。没搞懂unicode码点(code point)和UTF8编码的关系,还大言不惭的说UTF8编码,真让人无语。