Loading

邢栋博客

php7内核读书笔记-第一章 php基础架构

php7的变化 1.抽象语法树 2.Native TLS(线程局部存储) 使用Native TLS来保存线程的资源池,线程独享。 3.指定函数参数、返回值类型 4.zval结构的变化 php7将引用计数转移到了具体的value中。zval结构大小从24字节减少到了16字节 5.异常处理 6.HashTable变化 php中数组类型的内部实现结构。HashTable结构的大小从72字节减小到了56字节,数组元素Bucket结构也从72字节减小到了32字节 7.新的参数解析方式

创建一个简单的php7扩展

Php版本:7.0.0 首先进入php源码 ext 目录下 执行./ext_skel --extname=foobar //foobar为我要创建的扩展模块 执行完毕后 cd ext/foobar/ vim config.m4 16 dnl PHP_ARG_ENABLE(foobar, whether to enable foobar support, 17 dnl Make sure that the comment is aligned: 18 dn1 [ --enable-foobar Enable foobar sup...

关于php的JIT

关于php的JIT php是解释执行的,它的编译过程是属于动态编译,也就是在运行的时候进行编译,与之相对的事运行前编译的静态编译。动态编译与静态编译除了编译时机的不同,还有一个不同之的地方,那就是静态编译是将代码编译成了机器指令,而动态编译并没有编译为机器指令,而是编译成了解释器可识别的指令。即时编译,即just-in-time complication,简称JIT。JIT是动态编译中的一种技术,简单的讲,就是在某段代码第一次执行前进行编译,所以称为即时编译。 与解释执行不同的事,JIT是将源代码编译为机器指令执行,但JIT又与静态编译不同,它是在运行时...

Linux 中查看文件第n行内容的命令

Linux 中查看文件第n行内容的命令 方法1 head -m filename | tail -1 //查看filename文件的第m行(tail -1 是数字1) 例子:head -100 data.txt | tail -1 //查看data.txt文件的第100行 方法2 nl filename | sed -n 'mp' //查看filename文件的第m行 例子:nl data.txt | sed -n '100p' //查...

mongodb日志太大问题

MongoDB的日志文件在设置 logappend=true 的情况下,会不断向同一日志文件追加的,时间长了,自然变得非常大。 解决如下:(特别注意:启动的时候必须是--logpath指定了log路径的) 用mongo连接到服务端 use admin //切换到admin数据库 db.runCommand({logRotate:1}) 这样会使mongo关闭当前日志文件,重启一个新的日志文件,不需要停止mongodb服务。 如果感觉之前的log日志文件无用,可以删除掉,这样能节省很大的硬盘空间。

php的mcrypt加密类

<?php class McryptModel { protected $td = ''; protected $iv = ''; protected $key = ''; private static $instance = null; private function __construct($cipher,$mode,$key) { $this->cipher = $cipher; ...

php使用redis替换文件存储session(session_set_save_handler)

<?php class MySessionHandler implements SessionHandlerInterface { private $redis; private $sessionsavepath; private $sessionname; public function __construct() { $this->redis = new Redis(); $this->redis->connect('127.0.0.1',6379); ...

php生成随机验证码

<?php function getVerifyCode($num){ $content = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $content = str_shuffle($content); return substr($content,-$num); } echo getVerifyCode(4);

python的beautifulsoup4简单测试

# -*- coding:utf8 -*- # 测试基于 python2.7 # 安装pip 如果没有安装的话 # sudo easy_install pip # 安装 beautifulsoup4 # pip install beautifulsoup4 from bs4 import BeautifulSoup import re html_doc = """ <html><head><title>The Dormouse's story</title></head> <body...

php运行机制和原理

php由内核Zend引擎和扩展成组成,php内核负责处理请求、完成文件流错误处理等操作,Zend引擎可以将php程序文件转换成可以在虚拟机上运行的机器语言,扩展层提供一些应用层操作需要的函数类库等,比如数组和mysql数据库的操作等。 Zend引擎是用C语言实现的,将php代码通过词法语法解析成可执行的Opcode并实现相应的处理方法和基本的数据结构进行内存分配和管理等,对外提供相应的可供调用的API方法。Zend引擎是php的核心,所有的外围功能都是围绕他实现的。扩展层通过组件的方式提供各种基础服务、内置函数,标准库都是通过它来实现的。用户也可以编写自...