期权知识 第452页

  • PHP IO操作

    PHP IO操作

    PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 无论哪种编程语言,IO操作都值得好好学习和理解。由于PHP简单的特性,不少人对此毫无概念也能写出可用的代码。本文总结PHP开发中几个常见的IO场景并介绍对应的操作,希望能帮助PHP开发人员加深对IO的理解。后续文章中将介绍隐藏在简单之下的本质:流。 本文介绍的场景包括:读写文件、命令行输入输出、与远...

    期权知识 2020-08-20 526 0
  • log4j配置总结

    log4j配置总结

    log4j是阿帕奇日志服务(Apache Logging Services)旗下的一款强大的开源日志输出工具。log4j使用上简洁便利,高效且拓展性强,几乎是Java编程的必备依赖包。除Java专用的log4j,阿帕奇日志服务网站还有log4net、log4php等其他编程语言对应的包。 项目使用log4j作为日志组件,出于细分日志的需求,要对配置文件做较大变动。之前对一些概念理解不是很到位,趁此机会抽空回顾官方的教程,收获不少。因项目使用的1.2系列的jar包,本文整理自1.2版本的官方文档。 重要概念...

    期权知识 2020-08-20 538 0
  • Mina的WebSocket问题排查

    Mina的WebSocket问题排查

    项目的客户端需要重构,探讨后决定客户端与服务器的交互使用WebSocket协议。后端的网络层框架是Mina,在现有基础上增加对WebSocket的解析即可完成无缝迁移。正好Apache讨论组上有人提供Mina的WebSocket过滤器代码。下载后添加到项目,扔到服务器上一切正常。 今天前端同事反馈说请求某个接口会导致客户端立马报错然后断开连接,提示信息为:One or more reserved bits are on, reserved1 = 0, reserved2 = 1, reserved3 = 1。看...

    期权知识 2020-08-20 543 0
  • 非对称加密和证书总结

    非对称加密和证书总结

    前几日做支付对接时,被对方文档中的加密方式搞晕乎了一会。意识到证书加密方面的理解不够深入,事后查阅参考资料补习一波。本文是根据期间的学习,以及长期以来的实践做出的总结。 加密方式 密码学是涉及数学、电子信息、计算机等多学科的一门重要学科,是现代互联网安全的基石,也是目前如火如荼的区块链技术的安全保障。概括来说,加密方式可归结如下: 一、 不可逆加密 信息摘要(Message Digest)和安全散列(Secure Hash)算法属于此类,常见的算法包括MD5、SHA1、PBKDF2、bcrypt等。此类...

    期权知识 2020-08-20 507 0
  • PHP重载

    PHP重载

    整理思路时想到一个问题:PHP为什么不允许同名函数存在?即不允许常见于其他语言的重载机制? 重载和重写 先区分一下重载(overload)和重写(override):重载指多个名字相同,但参数不同的函数在同一作用域并存的现象;重写出现在继承中,指子类重定义父类功能的现象,也被称为覆盖。重载中说的参数不同有三种情况:参数个数不同,参数类型不同,参数顺序不同。重写一般指函数的覆盖,即相同签名的成员函数在子类中重新定义(实现抽象函数或接口不是重写),是实现多态(polymorphism)的一种关键技术。成员变量也...

    期权知识 2020-08-20 575 0
  • PHP中的流

    PHP中的流

    PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer 创建自己的Composer包 发送邮件 IO 上篇 “PHP回顾之IO” 提到读取文件、网络通信等操作,本质上是与 “流(stream)” 打交道。流机制是许多编程语言的重要机制,程序通过流可自由操作文件、内存、网络等设备的数据。 本文先简要跟踪PHP底层流的原理,再回到用户态中流的使用。 底层流 我们知道PHP中的fopen函...

    期权知识 2020-08-20 535 0
  • PhpStorm不能更改PHP语法版本

    PhpStorm不能更改PHP语法版本

    打开许久没用的PHPStorm,提示PHP文件里的“Group Use”语法在PHP7中才可用。尝试进设置里更改PHP语法版本,发现熟悉的下拉框不可选。虽然不影响使用,但作为强迫症患者,项目中的一条条红线不解决掉是不能安心写代码的。 软件启动时提示有更新,寻思是不是升级一下就好了?从官网下载升级包安装,打开项目问题依旧。 升级不能解决问题,看来另有原因。上Google查找答案,发现JetBrains的官方论坛有人给出了原因:composer.json中设置了PHP的版本。 原因已经找到,解决办法主要有以下几...

    期权知识 2020-08-20 487 0
  • Windows编译PHP7.2拓展

    Windows编译PHP7.2拓展

    准备工作 https://github.com/Microsoft/php-sdk-binary-tools下载PHP-SDK(在右边的“clone or download”点击,选择下方的“download zip”); https://windows.php.net/downloads/releases/下载PHP7.2的源码,此时最新版本是7.2.8,选择“php-7.2.8-src.zip”下载; https://visualstudio.microsoft.com/zh-hans/do...

    期权知识 2020-08-20 545 0
  • 解决Windows上编译PHP7.1拓展的错误

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

    接上篇Windows编译PHP7.2拓展,以为编译PHP7.1的拓展应该水到渠成,马到成功。哪知道编译PHP7.1拓展出现了新问题,折腾更超7.2。 第一个问题是VC15(visual studio 2017)不能编译PHP7.1的拓展,所以需要安装VC14(visual studio 2015)或其编译工具。从巨硬官网下载2015要登录,还要订阅“Visual Studio Dev Essentials”计划。看着安装程序显示需要占用9个G的硬盘空间,50G的C盘同样感到菊紧。 安装好VC14,开始按照流程...

    期权知识 2020-08-20 508 0
  • Nginx的upstream_response_time

    Nginx的upstream_response_time

    前几日为了查看FPM的性能,在Nginx的配置里增加FPM响应时间的header: http { ... server { ... location ~ \.php$ { ... add_header X-Upstream-Time $upstream_response_time; } } } 今天闲来查看网页的响应头,发现值与预期的不一致: 要说153毫秒我是相信的,那么数值的单位是纳秒。但这不符合常理:1. 印象中upstream_res...

    期权知识 2020-08-20 484 0