-
[PHP] 解决no package ‘oniguruma’ found
所属栏目:[大数据] 日期:2021-05-21 热度:146
编译安装PHP时,如果--enable-mbstring , 开启了mbstring扩展,需要这个正则处理库 ? centos yum install http: // rpms.remirepo.net/enterprise/7/remi/x86_64 oniguruma5-6.9.4-1.el7.remi.x86_64.rpm yum install http: oniguruma5-devel-6.9.4-1.el7.r[详细]
-
[PHP] php8的jit不支持32位系统WARNING: JIT not supported by h
所属栏目:[大数据] 日期:2021-05-21 热度:187
PHP8的jit需要在编译opcache扩展的时候进行手动开启 比如我PHP8源码目录在此: /home/ubuntu/myPHP/PHP-8.0.0alpha1/ext/opcache 执行 ./configure? --enable-opcache-jit? ?--with-PHP-config=/usr/local/PHP8/bin/PHP-config 会出现warning WARNING: JIT no[详细]
-
[PHP] create_function() 代码注入问题已经被弃用
所属栏目:[大数据] 日期:2021-05-21 热度:145
在某些老的框架或者cms中还在应用这个函数,建议是换成普通的原生匿名函数 官方文档的解释: 此函数在内部执行eval(),因此具有与eval()相同的安全性问题。此外,它还具有不良的性能和内存使用特性。 如果您使用的是PHP 5.3.0或更高版本,则应使用原生匿名[详细]
-
[转载] PHP 8新特性之JIT简介
所属栏目:[大数据] 日期:2021-05-21 热度:121
转载自鸟哥博客,原文地址:?https://www.laruence.com/2020/06/27/5963.html PHP8 alpha1已经在昨天发布,相信关于JIT是大家最关心的,它到底怎么用,有什么要注意的,以及性能提升到底咋样? 首先,我们来看一张图: 左图是PHP8之前的Opcache流程示意图(zend[详细]
-
[PHP] 解决mysql下1366 Incorrect string value错误
所属栏目:[大数据] 日期:2021-05-21 热度:75
这个错误是字符编码的问题,因为内容里有可能有表情等特殊字符,需要使用utf8mb4编码? 重点还有一个是,在PHP代码中连接上MysqL后一定要执行一下 set name utf8mb4 否则也是不行的 ? 比如下面这个表的字符编码 create table laruence( id int unsigned auto_inc[详细]
-
[PHP] PHP5中的写时复制change on write
所属栏目:[大数据] 日期:2021-05-21 热度:184
PHP变量在赋值的时候是增加的引用计数,并不是又创建了一块内存空间 但是当新的变量值变更时,值从新赋予新的值时,就会减掉刚才的引用计数,并且从新创建内存空间. 上面的内容是显而易见的,重新赋值自然会重新创建内存空间,但是有一种情况也会发生这样的事,那就[详细]
-
[javascript] 基于elementui的后台界面开发
所属栏目:[大数据] 日期:2021-05-21 热度:106
elementui是一套vuejs框架的ui库,主要逻辑是按照vuejs的组件方式来组合的 安装有多种方式,可以使用npm的包安装,也可以直接引用cdn资源,在这里为了简单起见使用cdn方式. 主体架构还是传统的iframe的结构,框进来一个main界面 没有使用vue-router,只是把vue当做[详细]
-
[PHP] PHP7.4.3安全版本的更改日志
所属栏目:[大数据] 日期:2021-05-21 热度:138
核心: 修复了错误#71876(内存损坏htmlspecialchars():不支持字符集*))。 修复了错误#79146(CScript在某些系统上可能无法运行)。 修复了错误#78323(无效选项返回代码0)。 修复了错误#76047(访问已破坏的回溯参数时可以自由使用)。 CURL: 修[详细]
-
[PHP] PHP 7.4.4错误修复版本的更改日志
所属栏目:[大数据] 日期:2021-05-21 热度:188
核心: 修复了错误#79329(一个空字节后get_headers()默默地被截断)(CVE-2020-7066) 修复了错误#79244(PHP在解析INI文件时崩溃)的问题。 修复了错误#63206(restore_error_handler无法还原以前的错误掩码)。 COM: 修复了错误#66322(COMPersist[详细]
-
[PHP] PHPMailer发信失败,用这种方式找原因
所属栏目:[大数据] 日期:2021-05-21 热度:130
当有个功能要发送通知邮件时,大家都会去用PHPMailer来调用第三方的smtp发信,经常遇到莫名其妙的错误,不知道是什么原因 . 今天我也遇到了这种问题,在发信时一直都是false,找了半天 这个类库最终还是拼接的smtp协议,与我们自己手动telnet然后 auth login?,mail[详细]
-
[PHP] 检测文件是否有病毒的实现逻辑
所属栏目:[大数据] 日期:2021-05-21 热度:197
在用户收到发送过来的文件后,要能够检测出这个文件是否是病毒,核心的软件是clamav,可以在linux命令行执行,检测文件或目录里的病毒 下载和安装可以参考其他博文 需要注意的是要开启下配置文件中的 LocalSocket /tmp/clamd.socket ? 运行时是以守护进程的方式[详细]
-
[PHP] 实现oauth下的单点登陆
所属栏目:[大数据] 日期:2021-05-21 热度:181
整体流程是,参照腾讯企业邮的对外开放API,传递client_id + client_secret就可以获取到access_token,拿着access_token+ 用户的标识,去请求一个登陆地址,获取到登陆地址直接跳转过去就能登陆成功? ? 1. 首先在管理后台,申请生成自己的client_id? +? client_sec[详细]
-
[PHP] GET参数加密签名保证安全防止篡改
所属栏目:[大数据] 日期:2021-05-21 热度:172
当我们开发时候需要对外开放接口,不管是GET还是POST,都有点害怕对方传递给我们参数的方式被别人知道,然后直接改改参数搞破坏. 这时候就需要对参数进行一下安全的验证工作,对参数进行加密后的字符串拼接在要传递的参数后面,接收方同等加密进行判断一致 ? 比如[详细]
-
[PHP] 使用xdebug查看php的性能损耗
所属栏目:[大数据] 日期:2021-05-21 热度:155
xdebug除了调试程序外,还可以来检测程序的性能损耗点,展示成图表的形式 在PHP.ini中增加如下配置: xdebug.profiler_output_dir=/tmp xdebug.profiler_enable=1 ? 访问程序后,会在tmp目录生成cachegrind.out.xxxx的文件,? 把这个文件下载到我们windows系统上[详细]
-
[PHP] 中英双语网站的设计思路
所属栏目:[大数据] 日期:2021-05-21 热度:117
1. 前几天开发一个双语网站企业站?,实现思路大部分情况下,我们可以想到是使用一个语言包数组文件 . key和value的形式,我们在展示界面时,输出数组对应的key而不是固定写死这个值 大概的设计是这样的,有两个这样的PHP文件 cn.PHP en.PHP ? 里面就是返回一个数[详细]
-
[PHP] PHP7.4.2安全和修复版本的更改日志
所属栏目:[大数据] 日期:2021-05-21 热度:171
核心: Windows上的预加载支持已被禁用。 修复了错误#79022(对于尚未准备好使用的类,class_exists返回True)。 修复了错误#78929(Cookie值中的加号转换为空格)。 修复了错误#78973(CV释放期间的析构函数如果从未保存opline会导致段错误)。 修复了错[详细]
-
[PHP] PHP7.4.1安全版本更改日志
所属栏目:[大数据] 日期:2021-05-21 热度:76
Bcmath: 修复了错误#78878(bc_shift_addsub中的缓冲区下溢)。 (CVE-2019-11046)。 核心: 修复了错误#78862(Windows上的null字节后,link()默默地截断)。 (CVE-2019-11044)。 修复了错误#78863(DirectoryIterator类在空字节后会自动截断)。[详细]
-
[PHP] 使用PHP迭代表示二叉树的查找
所属栏目:[大数据] 日期:2021-05-21 热度:163
先用一个数组表示一个二叉树搜索树,也就是一个排好序的二叉树,其中左子结点根结点右子结点 利用结构数组的形式来表示,id,left,right 代表结点id ,左子树 ,右子树 下面这个二维数组 $data []=['id'=8,'left'=2,'right'=10,'data'='test' ]; $data []=['i[详细]
-
[Linux] 协程是不是我想的这样
所属栏目:[大数据] 日期:2021-05-21 热度:146
最早知道的概念是进程,每个进程里面的执行单元是线程,一个进程肯定有一个主线程,也可以开出一些子线程,这俩都是操作系统控制的 ? 协程是啥概念? 现在又在线程里面增加了个协程的单元,这个是各程序自己去实现的概念?,是比线程更小的一个单元 ? 在一个线程里面[详细]
-
[PHP] 编译安装swoole
所属栏目:[大数据] 日期:2021-05-21 热度:157
不知道为啥,家里的网访问不了pecl.PHP.net,这也就没有办法直接使用pecl install swoole安装swoole,也可以直接进行编译安装 在git仓库下载源码 https://github.com/swoole/swoole-src 进入源码目录后 PHPize? (没有该命令的apt-get install PHP-dev) ./con[详细]
-
[PHP] RBAC权限与审批流的简单数据库构想
所属栏目:[大数据] 日期:2021-05-21 热度:127
权限部分:功能权限+ 数据权限控制权限是界面按钮菜单的权限控制,数据权限是数据范围的控制role(角色) -----------------| id |-----------------|name |----------------- user(用户) -----------------| node(菜单按钮节点) -----------------| id |-------[详细]
-
[PHP] Workerman中的注册树模式
所属栏目:[大数据] 日期:2021-05-21 热度:80
注册树模式是把对象挂到一个类的属性数组里,下次直接在这个数组里面取,保持全局唯一,一般在项目入口初始化的时候有用到。在workerman中一开始的就是个注册树模式的运用,下面是对他的模拟 ? PHP class Worker{ protected static $_workers = array (); pu[详细]
-
[PHP] socket客户端时的超时问题
所属栏目:[大数据] 日期:2021-05-21 热度:168
连接socket分为连接超时和读取超时 $sock=stream_socket_client("www.google.com:80",?$errno,$errstr,2);? ? 那个数字是连接超时,比如连接google,2秒就返回错误,这样就不会一直等在那了stream_set_timeout($sock,5);? 这个数字是读取数据的超时?stream_get_[详细]
-
[PHP] cli环境下php设置进程名字
所属栏目:[大数据] 日期:2021-05-21 热度:101
if (function_exists( ' cli_set_process_title ' )) { cli_set_process_title( " superman PHP master process " );} // Need proctitle when PHP=5.5 . elseif (extension_loaded( proctitle ' ) function_exists( setproctitle )) { setproctitle( );} 一[详细]
-
[PHP] php使用event扩展的io复用测试
所属栏目:[大数据] 日期:2021-05-21 热度:96
先要安装event扩展,这样才可以使用libevent的事件机制 pecl install event 测试代码 // 连接重用//创建资源流的上下文 $context = stream_context_create ([ 'socket'= [ 'backlog'=2000 ]]); stream_context_set_option ( $context ,'socket','so_reuseaddr[详细]