- 博客(51)
- 资源 (6)
- 收藏
- 关注
原创 一份PHP学习大纲
版本php7php8(jit)源码 php-srczend vm内存管理zend内存池变量zval、zend_valuehashtablegcrefcount编译过程词法分析lexer -> tokens语法分析parser -> AST编译compiler -> opcodeopcache执行过程(简单归纳,重点学习!)sapi_startup(cli、fastcgi…)zend引擎初始化扩展初始化解析执行p.
2021-12-07 17:56:14
233
原创 php7.4以下版本的preloading
php7.4支持preloading特性,在fpm重启时可以预先编译缓存opcode,那么低版本怎么做到类似的效果呢?
2021-12-07 17:46:04
242
原创 2020年回顾
工作远程办公疫情期间进行了一个多月的远程办公,很新鲜。对于我们这岗位,能不被打断是件多么幸福的事啊~感觉我在家产出的效率也是棒棒的。换工作离开待了将近4年的公司——明朝,去了网易。随之而来的挑战也变得更大,这几个月没有更新博客也是因为换工作了,暂时没有大片时间写东西,后面(应该)会保持一个月有一篇文章的产出。认真取了一个匪号——水行。关于这个匪号的来由:《雾山五行》角色人物之一衍字的解构(来自我的名字)王维的《终南别业》:行到水穷处,坐看云起时。(强行关联,后来看到有同事取“云起”)
2021-01-04 00:09:44
535
2
翻译 【译】3 Reasons Why PHP is Not Yet Perfect for Machine Learning
前言最近做了一些数据分析、机器学习的工作,使用的是php-ml这个库,前期还算不错,不得不佩服作者arkadiuszkondas的API设计能力和算法功底。但是,随着数据量越来越大,发现训练时长剧增、内存利用率不高,于是翻了翻作者的博客找到了这篇文章,故译之。正文为什么说目前的PHP生态还不能够普遍落地机器学习框架,我认为主要有三个原因造成当今这种状况。下面我将陈述这几个观点:可视化的可能...
2019-11-03 15:59:11
332
原创 Swoole加速结巴分词
中文分词对于英文句子来说,可以通过空格来切分单词,如// 今天天气不错the weather is nice today可以很简单的把该句子中的单词区分出来the/weather/is/nice/today在中文里面,就没有那么方便的区分方法了。当然,如果你习惯这样说话:今天 天气 不错大家也不会打你,只会觉得你像个“结巴”(点题了!)为什么需要分词?在中文里面的字和英文...
2019-09-26 14:33:19
1040
原创 odbc connect return false
前言odbc在connect的时候会返回资源句柄,但是如果返回false就蒙蔽了。如果有记录php错误日志,会得到下面的内容odbc_connect(): SQL error: [unixODBC][Cloudera][ODBC] (11560) Unable to locate SQLGetPrivateProfileString function., SQL state S1000 in ...
2019-09-26 14:32:01
626
原创 xhprof性能分析
安装git clone https://github.com/longxinH/xhprof.git ./xhprofcd xhprof/extension//path/to/php7/phpize./configure --with-php-config=/path/to/php7/bin/php-config --enalbe-xhprofmake && sudo m...
2019-09-02 16:36:07
321
原创 PHP在Web服务上的探索
title: PHP在Web服务上的探索date: 2018-03-20categories:技术tags:PHP网络编程传统模式cgi早期的web程序其实都是一种cgi程序,cgi是什么?cgi程序又是什么?通用网关接口(Common Gateway Interface/CGI)是一种互联网技术,可以让一个客户端向服务器上的程序请求数据。CGI描述了服务器(nginx\...
2019-09-02 16:34:07
318
原创 Redis:排查 read error on connection 小记
从错误说起版本信息php-7.1.xphpredis-4.0.x一个PHP常驻内存进程,连上Redis后,定时做brpop操作,阻塞时间为10s。问题出现在,几天(不定时)后,该进程就会僵死,表现为:netstat下,php进程与redis建立的客户端连接仍在(ESTABLISHED)在客户机tcpdump,没有输出任何数据包信息(没有通信?)strace该php进程,并没有...
2019-09-02 16:32:15
5787
1
原创 【funcompare】PHP文本/Json差异对比工具
title: 【funcompare】PHP文本/Json差异对比工具date: 2018-02-28categories:技术tags:PHPcomposerfuncompareA tool compare text differencesInstallationcomposer require "funsoul/funcompare: ~1.1"Usageco...
2019-02-15 10:49:19
1889
1
原创 【funcipher】PHP密文定制工具
title: 【funcipher】PHP密文定制工具date: 2018-02-04categories:技术tags:PHPcomposerfuncipherCustom random ciphertextInstallcomposer require "funsoul/funcipher: 2.0"UsageGlobal VariableCIPHER_US...
2019-02-15 10:48:49
259
原创 【字符编码】PHP导出CSV中文乱码问题研究
title: 【字符编码】PHP导出CSV中文乱码问题研究date: 2018-02-02categories:技术tags:PHP乱码没有踩过字符编码问题的程序生涯是不完整的,还记得曾经还踩过Apache+PHP+MySQL的编码问题,不过那时候没总结下来,今天遇到了导出文件的编码问题,一起来好好研究一下:)推荐一下这篇文章十分钟搞清字符集和字符编码,可以快速了解一下字符...
2019-02-15 10:47:50
1976
原创 【Yield】大数据下的应用
title: 【Yield】大数据下的应用date: 2018-02-01categories:技术tags:PHP大数据继上一篇文章【重构Hue】大数据处理的一些总结后,引起了一些思考.上篇文章提出了在大数据查询的情况下,分次读取是一种方案,但是这种方案并不完善,接下来,看看这样的情况吧.
2019-02-15 10:47:04
2216
原创 【PHP-ML】使用Apriori算法挖掘用户购物习惯
title: 【PHP-ML】使用Apriori算法挖掘用户购物习惯date: 2018-01-12categories:技术tags:PHPPHP-ML机器学习学习笔记<?phprequire_once __DIR__ . '/vendor/autoload.php';use Phpml\Association\Apriori;// 4位用户购买清单$s...
2019-02-15 10:45:34
1205
原创 【PHP-ML】使用最小二乘法预测天气信息
title: 【PHP-ML】使用最小二乘法预测天气信息date: 2018-01-08categories:技术tags:PHPPHP-ML机器学习学习笔记项目地址Github训练数据客运站网的历史天气信息采集工具QueryListoutput总结1、结合实际业务学习PHP-ML,这个demo抓取客运站网上前一周的最高气温作为样本数据进行训练,预测未来...
2019-02-15 10:43:32
1428
原创 【重构Hue】大数据处理的一些总结
title: 【重构Hue】大数据处理的一些总结date: 2017-12-27categories:技术tags:PHP大数据最近做了一个项目,是重构大数据开源查询工具Hue。在这里记下一些重构过程中遇到的问题以及解决思路。首先,感谢Hue为我们带来如此便利好用的工具。重构的目的只是为了在原来的基础上添加一些额外的功能,比如基于数据库的权限控制、离线导出任务等等。使用技...
2019-02-15 10:42:05
925
原创 【问题排查】PHP-FPM模式下提示缺失lib
title: 【问题排查】PHP-FPM模式下提示缺失libdate: 2017-12-14categories:技术tags:PHP问题排查php-fpm.conf设置worker为1,方便strace[global]pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/...
2019-02-15 10:36:50
744
原创 详解PHP连接Impala安装与配置
title: 详解PHP连接Impala安装与配置date: 2017-12-08categories:技术tags:PHPimpalaImpala的SQL语法参考https://www.cloudera.com/documentation/enterprise/latest/topics/impala_langref_sql.htmlPHP通过Thrift连接Impal...
2019-02-15 10:33:16
24023
原创 安装impala-shell遇到的问题
title: 安装impala-shell遇到的问题date: 2017-12-05categories:技术tags:impala问题排查下载rpm包impala-shell-2.2.0+cdh5.4.9+0-1.cdh5.4.9.p0.30.el6.x86_64.rpm安装# yum install python-setuptools# rpm -ivh impa...
2019-02-15 10:31:38
2875
原创 [Phalcon]请求volt与请求json的性能压测对比
环境ubuntu 16.0464位CPU:2内存:4G硬盘(SCSI):20GApachePHP 7.0.14MySQL 5.6Apache Bench 2.3压测前准备:使用浏览器登录网站,到审查元素中 -> network -> cookies获取所需cookie。时间线数据,获取五条观点数据开始压
2017-03-07 23:57:46
1434
原创 【Phalcon】路由拆分
写在前去年使用过PHP的Flight框架编写api,Flight框架非常简单,只需要花一点点时间看官方文档即可上手写代码,原生支持Restful风格。刚开始没觉得什么,只要有需求则加一个路由,由于项目不大,总共也不超过10个。最近在使用Phalcon,项目规模中等,在路由(routes.php)那里遇到了本文所关注的痛点,几十个路由放在一个文件中,而且还会继续往里加,当达到一定的数量级,如果有一天,
2016-12-15 10:39:09
2020
原创 在PHP多版本共存下安装扩展
安装PHP扩展有两种常用的安装方式编译安装PECL今天我为了图方便,直接使用PECL安装,后来发现,我的环境存在着两个PHP版本,一个是Ubuntu自带的php-5.5.9,另一个是集成环境oneinstack的php-5.5.38。结果可想而知,扩展被安装到了php-5.5.9中,实际上我想安装到php-5.5.38里面。可见PECL安装虽然方便,但是不够灵活那么开始使用编译安装的方式,步骤
2016-11-29 22:59:12
3600
原创 [JavaScript]基于Bootstrap+jQuery构建前端分页工具
前言为啥名字叫【前端分页工具】?因为我实在想不到什么好名字,如果想要更加贴切的理解这个工具,应该从业务来看业务是这样的,有一个数据从后台传到前台,因为数据量不大,因此传过来之后直接显示即可,但是=。=所谓的数据量不大,最多也达到成百上千条,不可能全部显示出来,那么就需要分页常规的分页是利用Ajax,通过传页偏移量到后台,后台查询数据库再返回数据,可以实现无刷新分页,拿到的数据也是最新的前端分页 优
2016-11-23 16:23:15
2605
原创 【Phalcon】升级版本
今天在我的PHP7环境下安装phalcon-devtools,安装完成后无法使用,提示信息是版本不兼容。查看一下,发现phalcon版本是2.1.0的…当时下载安装没去看,于是乎,只能升级版本了1.切换到下载Phalcon的目录cd /root/cphalcongit fetch需要等待一段时间,看到最新版本是3.0.xcd build/git checkout 3.0.x./install
2016-11-04 16:41:27
2877
原创 理解Websocket
背景HTTP特点:无连接 限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。无状态 无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。现在,很多网站为了实现服务器推技术,通常的解决办法是使用客户端(浏览器
2016-11-02 23:42:41
1986
原创 rpm error: %preun(xxx) scriptlet failed, exit status1
环境CentOS7问题卸载rpm包时遇到这个错误error: %preun(xxx) scriptlet failed, exit status1解决方法查找想要卸载的包,如mysqlrpm -qa | grep mysql出现相应的mysql包mysql-5.5.18-1.e16.x86_64卸载rpm -e --noscripts mysql注意只需要输入mysql,后面的版本号无需输
2016-11-02 09:35:54
5632
原创 【Phalcon】Hello Phalcon!
在上一篇文章中已经分别介绍了Phalcon在linux和windows下安装的步骤,接下来就是熟悉的hello world,为了方便,本次学习在windows xampp下进行。文件结构在xampp\htdocs下,我的习惯是建立一个www目录作为根目录,把所有项目放在一起管理,接下来,新建一个“hellophalcon”项目,然后接着建立所需的文件夹,看起来像这样:hellophalcon/
2016-11-01 00:02:58
502
原创 【Phalcon】安装Phalcon(lnmp php7\win xampp)
环境CentOS6.5 nginx 1.6.2 MySQL5.6 PHP5.6安装1.下载安装依赖库yum install php5-dev libpcre3-dev gcc make php5-mysql php5-fpm 2.下载git库git clone --depth=1 git://github.com/phalcon/cphalcon.git3.切换到build目录cd cph
2016-10-31 17:37:46
2727
原创 CentOS无法连接网络
安装的时候忘了设置网络cd /etc/sysconfig/network-scripts/vi ifcfg-eth0按如下设置DEVICE=eth0HWADDR=00:0C:29:2E:37:F0TYPE=EthernetUUID=69cd9740-184f-49b7-857f-e397e57f265bONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=dhcp
2016-10-31 15:06:57
952
翻译 translation - Modding Minecraft with PHP – Buildings from Code!
使用PHP修改《我的世界》——从代码层构建 —— Christopher Pitt 2016/10/18原文:Modding Minecraft with PHP – Buildings from Code!写在前早上翻译了一篇文章,关于PHP在游戏方面的应用,其中有些知识点我是完全没有涉略过的,关于yield,promise,这些使用的比较少,通过这
2016-10-28 14:53:55
1026
原创 LFS编译记录
磁盘分区cfdisk /dev/hda出错了,由于系统分配磁盘时不一定用hda作为名称,有可能是hdd或其他名称的,只要把名称找到并修改成相应的代码即可进入下一步cd /devls | grep hd 既然如此,使用hdd吧。cfdisk /dev/hdd 【交换分区swap】 通过‘左右’键移动到【new】->【primary】->【size】输入512->【beginning】获得
2016-10-27 11:37:21
4580
5
原创 Git异常fatal:The remote end hung up unexpectedly
版本$ git versiongit version 1.9.4.msysgit.2今天提交本地代码到coding上的时候出现,出现了一个异常,导致代码无法正常pushUnable to rewind rpc post data - try increasing http.postBuffererror RPC failed;result=56,HTTP code = 0fatal:The
2016-10-18 21:50:36
856
转载 使用人类史上最好的编辑器:Vim
你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。Vim the Six Billion Dollar editorBetter, Stronger, Faster.学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。我建议下面这
2016-09-29 16:22:16
7434
1
原创 php内置函数number_format
写在前昨晚在明朝游戏做了一道笔试题,题目大致内容是这样:一串数字字符串“3456789”,写一个函数使得每个三位用逗号分隔,如银行金钱计数法3,456,789。 刚开始用了笨方法,后来发现,PHP太强大了,早已内置了更高效方便的函数。(PHP 4, PHP 5, PHP 7) number_format — 以千位分隔符方式格式化一个数字说明string number_format (
2016-09-29 14:39:08
697
原创 快速排序
Wiki快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来
2016-09-28 10:38:11
496
原创 [Python Learning]字符串
环境字符串字符串连接字符串截取环境TX Yun-Ubuntu 14.04.1 LTS python-2.7.6字符串字符串连接>>> "hello "+"python"'hello python'>>> a="hello ">>> b="python">>> a+b #直接连接'hello python'>>> a=['p','y','t','h','o
2016-09-23 01:20:55
430
原创 [Python Learning]数值计算
环境正文加法运算减法运算乘法运算除法运算取余运算阶乘运算复数运算环境TX Yun-Ubuntu 14.04.1 LTS python-2.7.6正文加法运算int + int -> int>>>1 + 12int + float -> float>>>1 + 2.03.0float + float->float>>>1.0 + 2.03.0减法运算int - int ->
2016-09-22 18:16:03
633
原创 Oracle中的exists和in
写在前今天有一个业务,前台是一个供用户选择条件进行查询的功能。选择完毕后点击查询,前台使用get方式发送打包好的参数列表到后台(Controller),持久层拿到参数列表后拼装到SQL中,使用jdbc连接oracle拿数据。问题当条件过大(据说有7000多个数据),出现第一个问题,413 FULL HEAD ERROR。很明显是数据量过大,而使用的又是get方式传输,get请求
2016-09-19 23:29:51
1016
原创 [Python Learning]Whetting Your Appetite
环境腾讯云上的ubuntupython交互模式如上图所示,出现三个大于号“>>>”Hello Python
2016-09-19 00:22:35
541
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人