
php
文章平均质量分 76
三苗同学
这个作者很懒,什么都没留下…
展开
-
PHP多进程(3)信号
上一节:PHP多进程 (2)孤儿进程与僵尸进程,说到pcntl_wait()和pcntl_waitpid(),是为了解决僵尸进程问题,但最后看起来还是有一些遗留问题,而且上j节文章的结尾也给了解决方案:信号。本文参考地址:https://github.com/elarity/advanced-php/blob/master/4.%20php%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%88%9D%E6%8E%A2—%E4%BF%A1%E5%8F%B7.md信号是一种软件中断,也是一种.原创 2021-03-03 19:23:02 · 206 阅读 · 3 评论 -
PHP多进程(2)孤儿进程与僵尸进程
上一节:PHP多进程 (1)PHP多进程初探,简单了解了一下关于PHP多进程和简单的通过代码了解其中的一些问题。那这一节,来学习一下关于 孤儿进程与僵尸进程本文参考地址:https://github.com/elarity/advanced-php/blob/master/3.%20php%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%88%9D%E6%8E%A2—%E5%AD%A4%E5%84%BF%E5%92%8C%E5%83%B5%E5%B0%B8.md实际上,我们要记住:PH.原创 2021-03-03 18:43:29 · 362 阅读 · 2 评论 -
PHP多进程(1)PHP多进程初探
问题描述:近日在开发过程中出现了一个奇葩问题。 在我使用 PHP子进程处理发邮件的时候,在隔天再次1触发相关代码流程时,会把昨天的数据从使用子进程后再次重新处理一遍。导致数据出现重复,引发脏数据。为此,优化了代码,并且重新梳理了一下关于PHP多进程的问题。本文参考地址:https://github.com/elarity/advanced-php/blob/master/2.%20php%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%88%9D%E6%8E%A2—%E5%BC%80%.原创 2021-03-03 16:08:13 · 283 阅读 · 3 评论 -
PHP判断两个数字是否是同符号
问题描述问题:写一个函数,判断给定的两个数字是否是符号相同的,不可以使用比较运算符或与0比较。例如 is_same_symbol(-1, 10) == false; is_same_symbol(10,20)=true; is_same_symbol(-1,-10)=true; 同时,规定0属于正数。方法分装在二进制表示中,最高位是1的话,就是负数。最高位为0则为正数。因此我可以想办法通过位运算来判断。1 ^0 = 1。所以 负数^正数=负数。其实就是类似于乘法了。functio.原创 2021-02-20 11:21:02 · 1285 阅读 · 1 评论 -
PHP的目录结构、设计理念以及核心架构
前一节:使用ext_skel,实现一个PHP扩展,试着使用 ext_skel 写了一个扩展,通过上一节可以大体了解自己如何写一个扩展。这一节主要介绍一下PHP的目录结构、设计理念以及核心架构。PHP的目录结构、设计理念以及核心架构一、PHP的目录结构1、SAPI2、main3、Zend4、ext5、TSRM二、PHP的设计理念及特点三、PHP核心架构一、PHP的目录结构PHP源代码还包括在开发过程中生成的几个文件,以及在上游各自位置进行维护的几个部分。(注:PHP版本7.4.13)<php原创 2021-01-06 16:14:05 · 1601 阅读 · 0 评论 -
使用ext_skel,实现一个PHP扩展
使用ext_skel,实现一个PHP扩展一、写在前面二、生成代码三、修改config.m4配置文件四、代码实现五、编译安装六、调用测试七、※ 剖析文件1、config.m42、config.w323、php_hello.h4、hello.c一、写在前面本文是以PHP7.4 作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基本步骤都有哪些。示例中,我们将实现如下功能:<?phpecho hello();?>输出内容:$ php74 ./hello.ph.原创 2020-12-26 21:38:08 · 946 阅读 · 0 评论 -
PHP 8.0.0 Released!
2020年11月26日,PHP开发团队宣布将发布PHP 8.0.0。此版本标志着PHP语言最新的主要版本。PHP 8.0具有许多改进和新功能,例如: 1、Union Types ,联合类型2、Named Arguments,命名参数3、Match Expressions,匹配表达式4、Attributes,注解5、Constructor Property Promotion,构造函数属性提升6、Nullsafe Operator,Nullsafe 运算符7、WeakMap,弱映射8、JIT,Jus..原创 2020-11-27 18:05:45 · 548 阅读 · 0 评论 -
PHP判断并处理被urlencode过的字符串
问题描述:给你一个字符串如何判断是被urlencode过的字符串,如果是则解码,输出编码前的内容。举例:$content_1="这是一段汉字文本";$content_2="%E8%BF%99%E6%98%AF%E4%B8%80%E6%AE%B5%E8%A2%ABurlencode%E8%BF%87%E7%9A%84%E6%96%87%E5%AD%97%E3%80%82";如何判断$content_2 是被urlencode编码过的字符串呢?正则匹配?不是不可以,可以根据特殊字符%有规律的出原创 2020-10-22 16:57:08 · 2718 阅读 · 0 评论 -
读《PHP安全之道》提纲挈领笔记05
读《PHP安全之道》提纲挈领笔记六、PHP与密码安全1、用户密码安全(1)加密密码(2)密码加盐(3)定期修改2、防止暴力破解3、随机数安全4、数字摘要5、MA和HMAC简介6、对称加密7、非对称加密六、PHP与密码安全1、用户密码安全(1)加密密码存储用户密码前应该先对密码进行加密(MD5,SHA等算法),然后存储在数据库中。不建议使用des和MD5等若加密算法,散列算法推荐使用SHA256或SHA512。hash("sha256",$password);(2)密码加盐使用盐(salt.原创 2020-09-10 20:22:22 · 276 阅读 · 1 评论 -
读《PHP安全之道》提纲挈领笔记04
读《PHP安全之道》提纲挈领笔记五、PHP与客户端交互安全1、浏览器跨域安全(1)浏览器同源策略(2)浏览器跨域资源共享(3)JSONP资源加载安全2、XSS漏洞防御(1)反射型XSS(2)存储型XSS(3)DOM型XSS(4)通过编码过滤和转换进行防御(5)开启HttpOnly防御XSS(6)对Cookie进行IP绑定3、警惕浏览器绕过4、跨站请求伪造防御(1) CSRF请求过程(2) CSRF防御方法5、防止点击劫持6、 HTTP响应拆分漏洞7、会话攻击安全防御(1)会话泄露(2)会话劫持(3)会话固.原创 2020-09-08 10:29:24 · 294 阅读 · 0 评论 -
读《PHP安全之道》提纲挈领笔记03
读《PHP安全之道》提纲挈领笔记四、PHP项目中常见漏洞与防护1、SQL注入漏洞(1)SQL注入(2)报错注入(3)普通注入(4) 隐式类型注入(5)盲注(6)宽字节注入(7)二次解码注入2、SQL注入漏洞防护(1)MySQL预编译处理(2)PHP使用MySQL的预编译处理(3)校验和过滤(4)宽字节注入防护3、XML注入漏洞防护4、邮件安全(1)邮件注入(2)防止邮件注入5、PHP组件漏洞防护(1)RSS安全漏洞(2) PHPMailer漏洞(3)OpenSSL漏洞(4)SSL v2.0协议漏洞6、文件.原创 2020-08-03 20:59:08 · 325 阅读 · 0 评论 -
PHP各版本 const 定义数组问题
在开发过程中,难免会使用到自定义的常量。可以用 define() 函数来定义常量,在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。一个常量一旦被定义,就不能再改变或者取消定义。常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。但由于PHP的版本问题,在定义数组常量的时候却有些不同。PHP版本使用方式<5.6不可定义常量数组.原创 2020-07-27 16:47:52 · 2204 阅读 · 0 评论 -
读《PHP安全之道》提纲挈领笔记02
这里写目录标题三、PHP编码安全1、弱类型(1)hash比较缺陷(2)bool比较缺陷(3)数字转换比较缺陷(4)switch比较缺陷(5)数组比较缺陷2、PHP代码执行漏洞(1)代码执行函数(2)代码执行防御3、PHP变量安全(1)全局变量覆盖(2)动态变量覆盖(3)函数extract()变量覆盖(4)函数 import_request_variables()变量覆盖(5)函数parse_str()变量覆盖4、URL重定向安全5、请求伪造攻击(1)服务器请求伪造(Server-Side Request F原创 2020-07-21 14:14:13 · 220 阅读 · 0 评论 -
读《PHP安全之道》提纲挈领笔记01
一、PHP项目安全概述1、PHP项目安全形势不容乐观通过W3Techs是提供各种技术在Web上使用信息统计数据,截止到 2020年07月11日14:39:36,下图是Web服务端使用动态开发语言的统计数据。从统计结果可以看出,PHP占比达到79%。其次是ASP.NET和Ruby。通过exploit-db 统计,90%的web平台漏洞所使用的开发语言是PHP。可见:PHP应用得多,由其导致的漏洞也最多。2、PHP项目安全产生的原因(1)研发人员大都关注业务,不太关注漏洞和安全。(2)研发人员.原创 2020-07-11 17:43:01 · 415 阅读 · 0 评论 -
php+mysql 批量插入数据封装方法(有则更新,无则插入)
作用:批量插入数据,有则更新,无则插入 /** * Function addDataToMysql * 批量插入数据到数据库,无则插入,重复则更新 */ public function addDataToMysql($data) { $mysql = $this->_getDatabase(1); //获取...原创 2019-11-15 16:29:21 · 1230 阅读 · 0 评论 -
php+mysql 批量更新数据封装方法
作用:根据 某字段来批量更新数据。 /** * Function upDataInfo * 根据$field 字段 更新数据 **/ public function upDataInfo($data,$field,$where=[]){ $mysql = $this->_getDatabase(true);//...原创 2019-11-15 16:19:53 · 542 阅读 · 0 评论