自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(379)
  • 收藏
  • 关注

翻译 [译] LLVM IR中间码指令集

最近在研究这个东西, 实在百度不到, 最后在谷歌上找到英文手册.英文手册地址:https://llvm.org/docs/LangRef.html先说点废话:国内的IT水平离世界顶级水平差距实在有点大, 个人感觉 有些因素导致这个结果:1.化身广告商的百度, 想找点专业文章, 没戏.2.墙. 有用的文档在墙外,不翻墙看不到.3...

2020-01-14 18:42:21 1909

原创 [原] 近期开发计划

PHP框架升级了一版, 以PHP7.3为基础,支持PSR大部分功能.https://github.com/ice-php/frame.gitPHP框架的开发暂时告一段落,下一个目标是设计一门新的开发语言, 正在学习中, LLVM,FLEX,BISON,.........

2020-01-14 12:10:38 449

原创 [原] 关于PSR

总述,共0-18 个规范第一部分: 废弃或未通过的 包括 PSR 0, PSR 5, PSR 8, PSR 9, PSR 10, PSR 14第二部分: 关于编码风格 包括 PSR 1, PSR 2, PSR 4, PSR 12 . 一定要一起看. 这里的风格要求, 只要你使用了合适的代码编辑器,比如PHPStorm, 有自动代码格式化功能,就都可以. 如果...

2019-12-13 15:35:38 457

原创 [原] 框架中增加了表单验证及表单回填功能

本次增强包括以下内容:1.增加了表单项的定义功能,可以对表单项进行常规检查2.增加了表单的定义 功能,可以对整个表单进行常规检查3.表单项检查和表单检查中,都允许开发人员自行编写业务代码进行进一步的检查4.使用标准的错误处理方式,将表单中的全部错误返回给前端5.用户在表单填写过程中出现错误,再次显示表单时,数据将被回填(可选)以下是示例代码,以登录为例<?...

2019-06-13 06:48:49 418

原创 [原] Python 取指定定界符中间的内容

# 取指定定界符中间的内容def mid(content: str, beginString: str = '', endString: str = ''): """ 取指定定界符中间的内容 :param content: str 要截取的字符串 :param beginString: str 开始定界符 :param endString: str 结束...

2019-03-26 09:57:00 1568

原创 [原] Python 将下划线分隔的名字,转换为驼峰模式

# 将下划线分隔的名字,转换为驼峰模式def formatter(src: str, firstUpper: bool = True): """ 将下划线分隔的名字,转换为驼峰模式 :param src: :param firstUpper: 转换后的首字母是否指定大写(如 :return: """ arr = src.split('_'...

2019-03-26 09:56:06 3188

原创 [原] Python 判断是否包含中文

# 判断是否包含汉字(简体中文)def hasCN(string: str): """ 判断是否包含汉字(简体中文) :param string: :return: """ return re.compile(u'[\u4e00-\u9fa5]').search(string)...

2019-03-26 09:45:54 2935 1

原创 [原] Python 日期运算

# 日期计算def nextDay(day: str = '', n: int = 1): """ 日期计算 :param day: :param n: :return: """ return (datetime.datetime.strptime(day, '%Y-%m-%d') + datetime.timedelta(n)).str...

2019-03-26 09:45:25 696

原创 [原] Python 列表转字典

这个操作经常用,但是太复杂,封装一下# 列表转字典def listToDict(data): """ 列表转字典 :param data: list|dict :return: dict """ if type(data) == dict: return data return dict(zip(range(len(d...

2019-03-26 09:31:40 266

原创 [原] Python 向文件中追加一行,类似file_put_content

没有找到类似功能,自己写了一个,如果谁知道有现成的功能,请告诉我* 其中要考虑文件锁问题# 向文件中追加一个字符串def file_put_content(file: str, msg: str): """ 向文件中追加一个字符串 :param file: 文件名称 :param msg: 要添加的文本 :return: bool 是否添加成功...

2019-03-25 14:36:03 4137

原创 [原] Python 根据URL获取JSON

# GET请求API接口,并对结果进行JSON解析def getApi(host: str, url: str): """ GET请求API接口,并对结果进行JSON解析 :param host: 主机 :param url: 地址 :return: 对象 """ con = http.client.HTTPConnection(host...

2019-03-25 14:23:22 3142

原创 [原] Python MD5

简化一下MD5的步骤# 对MD5操作进行简化def md5(src: str): """ 对MD5操作进行简化 :param src: 要签名的源串 :return: MD5签名结果 """ return hashlib.md5(src.encode('utf-8')).hexdigest()以上操作结果与PHP的md5函数结果相...

2019-03-25 14:22:30 152

原创 [原] Python 获取Windows全部硬盘名称

# Windows操作系统下,返回全部硬盘编号['C:\','D:\']def winDrivers(): """ Windows操作系统下,返回全部硬盘编号['C:\','D:\'] :return: list """ return sorted([driver.device for driver in psutil.disk_partitions(T...

2019-03-25 14:14:33 2453

原创 [原] Python 根据设备编号获取设备名称

# Linux下,根据设备号,获取设备名称def linuxDeviceToName(no: int): """ Linux下,根据设备号,获取设备名称 :param no: 设备编号 :return: str """ for line in open('/proc/partitions'): fields = line.spli...

2019-03-25 14:13:43 1989

原创 [原] Python 根据用户编号获取用户名称

# 根据 stat中查出的用户编号,获取用户名称def linuxUserInfo(st_uid: int): """ 根据 stat中查出的用户编号,获取用户名称 :param st_uid: 用户ID :return: str 用户名称 """ import pwd entry = pwd.getpwuid(st_uid) r...

2019-03-25 14:12:38 1704 1

原创 [原] Python 根据用户组编号,获取用户组名称

# 根据 stat中查出的组编号,获取组名称def linuxGroupInfo(st_gid: int): """ 根据 stat中查出的组编号,获取组名称 :param st_gid: 用户组编号 :return: str 用户组名称 """ import grp entry = grp.getgrgid(st_gid) re...

2019-03-25 14:12:02 1036

原创 [原] Python 获取CPU信息

# 获取CPU运行情况def cpuInfo(): """ 获取CPU运行情况 :return: """ cpuTimes = psutil.cpu_times() # 获取CPU信息中的内存信息 def memoryInfo(memory): print(memory) """ 获取CP...

2019-03-25 12:04:13 5182

原创 [原] Python 获取全部网络信息

# 获取网络信息def netInfo(): """ 获取网络信息 :return: """ counter = psutil.net_io_counters() netAddr = psutil.net_if_addrs() netStat = psutil.net_if_stats() connections = psutil...

2019-03-25 12:03:32 3093

原创 [原] Python 获取全部进程信息

转战Python已经半年,现在开始写一些自己开发的代码段# 获取全部进程信息def processInfo(): """ 获取全部进程信息 :return: list """ # 定义一个获取进程属性的方法 def getProperty(process, pro: str): try: ret = ...

2019-03-25 12:01:20 6348

原创 [原] PHP 多子进程 pcntl_fork的初步实践

近期准备在项目中使用并发消息处理, 先试用fork多子进程, 以后再研究pthreads多线程 fork有一些坑,这里记录一下 1.返回PID&gt;0的是主进程 , 返回值=0的是子进程 , 不要弄混了. (其实差别不大)2.子进程处理完成一定要加exit/die退出,否则会继续执行主进程的后继代码3.子进程会复制主进程的全部数据,包括局部变量,全局变量,对象,并对对象进...

2018-12-12 15:41:26 725

原创 [原] 关于使用Redis作为存储介质,实现复杂查询的实践

只是以此记录实践经验构想中, 以 Hash表作为数据存储结构,以SortedSet作为索引存储结构,以实现多索引复合查询实践中, 非主键索引的交并比较容易处理,但非主键索引与主键索引的交并就不好处理了, 最后结果ID集合的查询也不好处理最终,放弃此想法. 只用Redis解决一些专门的业务逻辑,而不再奢望通用查询方案....

2018-12-05 12:21:08 1704 1

原创 [原]Workerman实际应用

这不是教程,只是在实际项目中应用了Workerman,以此记录 public function socket(){ //命令行永久运行 set_time_limit(0); //指定日志位置 \Workerman\Worker::$logFile=DIR_ROOT.'run/log/workerman/workerman.log'; //创建...

2018-12-05 10:50:51 843

原创 [原]PHP 7 中 由于 PDO版本问题导致 的 严格类型检查错误

近期项目开发 过程中遇到一个BUG项目采用了PHP 7.1 新功能.,并进行了强制类型约束本地开发(Windows环境+PHP7.1.*),代码运行正常测试环境(Linux+PHP7.2) 运行正常正式服务器(Linux+PHP7.1) 类型错误. 经过逐步追查, 在PDO::fetch 操作中, 两个环境结果 不同数据库中的整数字段, Fetch出的数据类型分别是 i...

2018-11-02 14:22:04 600

原创 [原]关于异常与错误的思考

最近在PHP框架中,对异常的处理产生许多疑惑,百度而不得其姐.于是想到, Java肯定也有类似问题, 果然.下面是一篇相当 深入的探讨. https://blog.csdn.net/luqin1988/article/details/7970792 我的结论如下:1.异常(Exception)与错误(Error)都很重要,缺一不可.2.Exception与Error...

2018-09-14 17:23:47 174

原创 Nginx 唯一 ID的 生成与使用(实测通过)

不使用第三方语言(Lua)有两种方案1.反向代理:    a.xxx.com 代理 b.xxx.com, 在A站的Nginx配置中使用 proxy_pass 以及proxy_set_header    本方案网上有, 请自行查找, 唯一需要注意的是 Nginx版本 尽量新一些. 2. 不使用反向代理, 通过 Nginx配置来解决  2.1  在nginx的 fastcg...

2018-08-27 17:33:56 6084

原创 PHP创建GITHub项目时 的composer.json的写法

下面说说我自己提交 到GitHub上的代码中的注意事项 1. 目录结构:    根目录下 创建 src 目录 用来存放 源代码, 创建examples目录存放 示例代码2. 类名与文件名    我的类名是 RequireInsensitivity 文件内容如下&lt;?php/** * Created by IcePHP Framework. * User: 蓝冰大...

2018-08-09 16:04:26 824

原创 composer错误Could not find package 的解决方法

我正在逐步将我自己的框架提交到GITHUB上, 这真不是件容易的事情.1.GITHUB上注册账号,开启项目2.本地GIT clone 下来3.本地修改代码, 提交回GITHUB4. Packagist 上注册账号, 同步项目到Packagist5.使用Composer 更新代码到本地另一个测试项目中,  此时出现问题总是提示 [InvalidArgumentExcept...

2018-08-09 09:45:02 43263 6

原创 PHP实现 微信个人号 的 自动回复机器人 及 对PHP的感想

1.前些天学习 Python, 看到一个 微信机器人的示例, 尝试了一下, 用了 近一个小时 实现, 共19行代码(抄的),    主要时间要在 安装 扩展以及运行环境上.2. 作为 一个PHPer, PHP必须是世界上最好的语言, 应该能实现一切其它语言可以实现的功能3. 网上搜索了几个小时, 大部分都是 公众号/订阅号的 帖子,  最后终于找到一些关于 个人号的 文章, 也就是 h...

2018-08-02 11:00:24 6845 2

原创 调用 图灵接口 尝试聊天机器人

这个很简单, 根本没写程序1.在FF中安装了一个REST Client 插件以实现 POST请求2.在tuling123.com上注册一个账号, 创建一个机器 人,  得到一个 KEY3.

2018-08-02 10:41:33 1605

原创 PHP在Windows窗口下的中文输出乱码问题解决

1.与header无关2.不要用iconv转换编码了, 跟这个也无关3.不要chcp代码页了, 跟这个也无关4.不要修改注册表了, 这个没试过, 按以下方法即可1.PHP文件本身是 UTF-82.CMD窗口 在标题处右键选择属性, 修改字体  , 默认是 点阵字体, 这个字体是个坑,  换成 "宋体" 或者 Lucida(看选项里有哪个 )  即可.   ...

2018-08-01 15:35:01 1649 1

原创 PHP中使用composer加载自定义 的类

最近打算用composer来自动加载自己的类, 实践过程中遇到一些小难点, 解决方案记录如下:1.首先需要创建一个 存放 类文件的目录 , 不建议放在vendor下, 2.修改composer.json文件, 加入/修改 "autoload":{ "psr-4":{ "Elastic\\":"enhance/elastic" }}    其中 前面 是 你自己的命名空间名称, 后...

2018-06-26 11:14:19 2499

原创 最简版 PHP 查询 Elasticsearch 不需 插件,第三方接口

$url="http://localhost:9200/{$indexName}/_search?";$params=[ 'size'=&gt;$count, 'source'=&gt;json_encode(['query' =&gt; [ 'multi_match' =&gt; [ 'query' =&gt; $keyword, ...

2018-06-14 18:00:55 2678 3

原创 PHP进行海量日志的分析心得

业务场景, 每天产生百万左右的日志,总量过亿, 准即时分析1.不需要使用复杂的技术栈, PHP本身即可处理, 时间也可接受2.可简单使用多开CLI进程的方式,每个CLI对应一个日志源, 不需要引入多线程之类的技术, 适合日志源较固定的业务场景.3.提前过滤不需要保留的日志,如:爬虫, 业务中无用的日志, 我的业务场景 中可过滤掉90%的无效 日志4.事先确认分析需求, 只根据需求对日志进行分析. ...

2018-05-07 16:51:56 3755 1

原创 PHP分割WordPress导出的XML文件

//定义生成的XML的大小private const XML_SIZE = 500 * 1000;//定义需要分割的XML文件private const XML_SOURCE = DIR_ROOT . 'run/media.xml';//定义输出文件的前缀private const XML_TARGET = DIR_ROOT . 'run/media-';/** * 分割W...

2018-04-20 09:38:47 368

原创 PHP实现的日志收集系统

    最近业务中涉及到远程服务器的日志收集需求, 出于限制技术栈扩大的想法,使用PHP进行了实现.    实现过程中有些小小需要注意的点,记录如下:1. 主动获取. 由于服务器较多, 如果使用Flume之类的架构, 需要在每台服务器上安装软件, 这就产生了运维成本 . 所以我们使用 收集端主动获取的方式. 不需要在生产者(服务端)安装软件.2.SSH连接. 每台服务器都配置了SSH连接权限,使用...

2018-04-18 11:22:35 6266 1

原创 PHP中的设计模式-简单工厂,静态工厂,工厂方法,抽象方法的关系

再次陈述:所有设计模式的核心是要满足以下需求: 当业务扩展时, 尽可能不要修改原有代码.  (尤其是原来的程序员没写注释和文档的时候)静态工厂:  这个最简单. 就是把创建对象这一过程封装到工厂类中, 不再直接生成对象,而是由工厂 来生成对象. 我们只对工厂提出创建要求.而且创建过程较为简单, 一个静态方法的调用即可创建产品对象的情况下, 我们就应该采用静态工厂

2018-02-06 17:45:47 393

原创 PHP中的设计模式-创建型-工厂方法模式

说明: 工厂方法模式, 简单工厂模式, 静态工厂模式  这三者 都是 抽象工厂模式的简化版本, 单独针对某一方面 本模式重点表述, 具体的工厂使用不同的方式 来生产产品实现代码:<?php/** * 工厂方法模式示例 * User: 蓝冰大侠 */class CFactoryMethod extends SController{ public fu

2018-02-06 16:52:28 202

原创 PHP中的设计模式-创建型-静态工厂

说明 : 本模式与简单工厂模式极为相似. 区别在于,不需要实例化一个工厂对象即可创建产品.应用场景: 当创建过程较为简单时, 就使用静态工厂方法.  当创建过程较为复杂时,使用简单工厂方法.       静态工厂: 静态方法本质上是一个过程化的实现, 当创建过程几句话就能说明白的时候,就可以使用.      简单工厂:创建过程需要工厂对象大量复杂操作,使用到工厂对象的实

2018-02-06 16:14:05 207

原创 PHP中的设计模式-创建型-简单工厂

适用条件: 简单的说,所有的设计模式的目标都是为了以后的扩展. 当业务扩展时,尽可能少的修改原有代码. 我们知道,修改原有代码就有可能出错,会担责任的. 本模式适用于只有一种产品,但本产品可以有多种型号(版本),而且以后可能还会增加新的型号. 我们在应用中需要根据实际的情况来创建不同版本的产品对象.限制条件:    1.产品: 只有一种产品, 但可以有多个型号,并且

2018-02-06 15:29:19 162

原创 PHP中的设计模式-创建型-抽象工厂

适用条件: 简单的说,所有的设计模式的目标都是为了以后的扩展. 当业务扩展时,尽可能少的修改原有代码. 我们知道,修改原有代码就有可能出错,会担责任的. 本模式适用于产品类型确定,但生产方式会发生变化的场景. 当业务变化时,可以通过增加具体工厂来生产新型号的产品.限制条件:    1.产品: 有多个不同类型的产品(对象), 如果只有一个产品,没必要使用此模式    2.

2018-02-06 11:52:41 242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除