随笔分类 -  php

php开发记录
摘要:上一篇文章中用PHP的FFI成功了调用了cjieba,但是速度实在是慢,4个函数循环调用20次,用了居然1分50多秒,而且C版本只比PHP快一点点,看来是cjieba本身慢了。 这次发现了一个golang的分词库gse,试试导出为动态库,用FFI加载。 碰到的问题 不能导出go指针 由于之前对cgo 阅读全文
posted @ 2020-08-12 20:50 半山th 阅读(1190) 评论(0) 推荐(0) 编辑
摘要:phpjieba_ffi 使用PHP 7.4的 FFI 测试直接调用cjieba分词的动态库 选用CJieba的原因是FFI使用的是C的调用约定,如果用Cpp,还得自己包装一下,然后extern C,让编译器生成标准C的动态库。 碰到的问题 段错误 C变量没有初始化 直接调用了C的函数,没有通过FF 阅读全文
posted @ 2020-07-31 18:49 半山th 阅读(476) 评论(0) 推荐(0) 编辑
摘要:项目采用了 "Yapi" 做为文档管理工具,可是由于之前没有划分好模块,结果文档都写到一起了,导致查看文档不方便。 研究Yapi,发现不能移动分组,而且只能导出项目下的所有接口,于是导出文件,研究后发现文档里的文件夹是使用tag来表示的,于是想到可以把按照tag,导出成单个json文件,然后新建项目 阅读全文
posted @ 2020-02-17 15:50 半山th 阅读(509) 评论(0) 推荐(0) 编辑
摘要:起因 最近在做微信开放平台,需要给第三方入住,而且入住方都有自己的二级域名。做过微信开发的人都知道,坑爹的是微信并不支持这种二级域名的方式,所以用一个域名专门来处理。 问题 然后由于采用了一个专门的域名来做授权,这样重定向到其它域名时,就会出现不能携带cookie的问题。当然把登录后的参数放到url 阅读全文
posted @ 2018-08-30 21:45 半山th 阅读(17370) 评论(0) 推荐(0) 编辑
摘要:背景 最近需要涉及一个定时通知的业务,之前的办法是采用定时任务,每秒查询一次。后来了解到Redis的 "键空间通知" 机制,其中的过期通知,和业务非常贴合。 键空间通知 下面是Redis中文文档的介绍 键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件 阅读全文
posted @ 2018-03-30 14:44 半山th 阅读(3828) 评论(0) 推荐(0) 编辑
摘要:后台有拖拽排序功能,然而前段在开发的时候,一整页的数据都发给后端了。 于是查看前端代码,想到了如下解决办法,即先把排序前的保存,然后对比排序后的,有差异的才发回给后端。 其中old_ids_order是排序前的,ids_order是排序后的,new_ids_order 和new_sort_order 阅读全文
posted @ 2018-02-22 17:15 半山th 阅读(971) 评论(0) 推荐(0) 编辑
摘要:自动加载__autolaod和spl_autoload_register() 自动加载就是指如果找不到某个类如何处理的方式,具体可参见 "此文" ,可以说spl_autoload_register是更加高级,更加灵活的加载方式。 命名空间 C++里很早就引入了命名空间来解决命名冲突,随着php的工程 阅读全文
posted @ 2018-02-07 20:29 半山th 阅读(412) 评论(0) 推荐(0) 编辑
摘要:为什么要开发PHP扩展 PHP-X是用来开发PHP扩展的库。PHP代码写得好好的,为啥要开发PHP扩展呢? 1、我们知道PHP不擅长CPU密集型的操作,那么把CPU密集型的相关代码迁移到扩展上,就可以大幅提高效率了,比如加密mcrypt、序列化igbinary、图像处理gd2等。 2、另外有些系统相 阅读全文
posted @ 2018-02-07 19:50 半山th 阅读(1168) 评论(0) 推荐(0) 编辑
摘要:说到反射,实际上包含两个概念: 检视 introspection 判断类、方法是否存在,父子类关系,调用关系等,检视的函数 "文档" 反射 Reflection 获取类里的方法、属性,注释等,反射类的 "文档" PHP官方文档写得很清晰了,下面我就说一下具体的应用。 1.参数检测 有时候需要在函数里 阅读全文
posted @ 2018-02-03 14:13 半山th 阅读(500) 评论(0) 推荐(0) 编辑
摘要:0x00 何为函数式编程 网上已经有好多详细的接受了,我认为比较重要的有: 1. 函数是“第一等公民”,即函数和其它数据类型一样处于平等地位 1. 使用“表达式”(指一个单纯的运算过程,总是有返回值),而不是“语句”(执行操作,没有返回值) 1. 没有”副作用“,即不修改外部值 0x01 开始函数式 阅读全文
posted @ 2018-02-03 10:00 半山th 阅读(1071) 评论(0) 推荐(0) 编辑
摘要:0x00 小编的问题 小编向我们反馈,从微信里复制出来的图片,会被微信屏蔽,无法显示 我们后天采用的是百度编辑器,而且已经做了远程图片本地化,于是检查微信的图片地址。 随便打开一篇微信文章,发现其图片地址如下: http://mmbiz.qpic.cn/mmbiz_jpg/QeUoMcnKBk25d 阅读全文
posted @ 2018-01-25 12:26 半山th 阅读(1625) 评论(0) 推荐(0) 编辑
摘要:问题 换了个新电脑,后来重新配置phalcon环境。由于用得是windows,而且还用得是2.0.5得版本,官网已经没提供这个版本下载了。而旧电脑已经被格式化了,😳。 寻找旧版本 通过一番搜索,发现了一个issue,提到phalcon的旧版本放到了website仓库里 可惜也没有2.0.5的。 后 阅读全文
posted @ 2018-01-04 10:33 半山th 阅读(564) 评论(0) 推荐(0) 编辑
摘要:需求 需要根据不同的角色来显示不同的菜单 问题 系统是前后分离模式开发的,出现了后端接口和前端路由都需要权限管理。 思路 后端的接口肯定得验证权限 在前端做好组件名和组件的映射 前端的路由通过后端发回的json动态生成,对于比较细粒度的可以通过css来控制和隐藏 方案 使用vue router的ro 阅读全文
posted @ 2017-12-26 21:07 半山th 阅读(2530) 评论(0) 推荐(0) 编辑
摘要:经常有人说php速度慢,其实语言层面的速度差异和实际的业务相比,不在一个数量级。 业务的瓶颈往往在于io,而不是CPU。 0x0 语言 语法 1. 单引号和双引号 单引号不解析字符串里的变量,而双引号会解析,如果需要大量处理字符串,建议用单引号和字符串连接符"." 1. === 和 == "=="会 阅读全文
posted @ 2017-12-15 14:53 半山th 阅读(375) 评论(0) 推荐(0) 编辑
摘要:0x0 大型项目的问题 随着项目越来越大,参与的人数越来越多,代码变得越来越不可维护了。 每个人都给项目带来自己的风格,所以这时就需要大家采用一个统一的标准。 0x1 解决办法 于是顶尖的PHPer们讨论确定了PHP的一些常用规范,并成立了FIG组织。 目标在于制定一个协作标准,各个框架遵循统一的编 阅读全文
posted @ 2017-12-14 21:05 半山th 阅读(1041) 评论(0) 推荐(0) 编辑
摘要:图片显示不全 网站进行了迁移,更换了新框架,结果出现了图片显示不全的问题,后来发现是nginx权限问题 curl 无报错,无返回 有可能是url错误,而无服务器对错误的url返回空,没返回错误 阅读全文
posted @ 2017-10-25 20:31 半山th 阅读(168) 评论(0) 推荐(0) 编辑
摘要:0x00缘起 代码部署在windows上,出现了一个bug,临时用记事本打开修改了一下,于是出现了500错误 0x01排错 查看log,提示如下 “Namespace declaration statement has to be the very first statement or after 阅读全文
posted @ 2017-09-28 15:19 半山th 阅读(1082) 评论(0) 推荐(0) 编辑
摘要:0x00 需求 最近要做百度、360、神马搜索的网站sitemap,三家的格式都是xml,然而具体的细节还有有差别的。 一开始用的是dom,没有使用sax,写了几段便觉得太傻了,想到有没有数组转xml的库呢? 0x01 array2xml 搜索了一下,还真有地址为 "git" ,于是开始撸起袖子开始 阅读全文
posted @ 2017-09-12 21:06 半山th 阅读(756) 评论(0) 推荐(0) 编辑
摘要:0x00 故障 由于GuzzleHttp在iis上使用错误,于是开始替换其为Unirest,没想到发送了一个curl Array to string conversion 错误 0x01 原因 跟踪调用流程,发现是在curl_setopt时设置CURLOPT_POSTFIELDS后抛出的异常。 查看 阅读全文
posted @ 2017-08-07 17:47 半山th 阅读(1390) 评论(0) 推荐(0) 编辑
摘要:  很不想用iis,然而客户不想增加机器,只好按客户的意思了。可是没想到发送短信以在本地 机器上是好的,在iis下直接500。   一开始以为是防火墙问题,后来检查了一下没有,再后来换了一个短信接口,就莫名其妙好了。 然而过段时间后发现其它几个调用外部服务的功 阅读全文
posted @ 2017-07-31 15:28 半山th 阅读(470) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示