php

API 请求签名生成规则

总结一下常见的 签名生成规则 规则1 每个 HTTP 请求中均需要携带以下的 HTTP 标头字段(HTTP Request Header) 默认名称 带 RC-前缀 类型 说明 App-Key RC-App-Key String 后台分配的 App Key Nonce RC-Nonce String 随机数,不超过 18 个字符 Timestamp RC-Timestamp String 时间戳,从1970年1月1日0点0分0秒开始到现在的毫秒数 Signature RC-Signature String 数据签名。您需要参考下文的签名计算方法生成该字段的值 签...

php 使用 protobuf

协议缓冲区(Protocol Buffers)是一种语言中立、平台中立的可扩展机制,用于序列化结构化数据。 安装 wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.0/protobuf-php-3.20.0.tar.gz tar -zxvf protobuf-php-3.20.0.tar.gz cd protobuf-3.20.0 ./configure --prefix=/usr/local/protobuf make make install #软链 ln -s /usr/local/prot...

使用 ControlFlag 扫描出 PHP 代码中的错误

ControlFlag是一个开源的、利用机器学习来发现任意代码库中的错误的项目,起初它专注于发现C/C++代码中的错误,但随着其新的V1.1版本的发布,开始支持发现PHP代码当中的错误。 安装 注意gcc和cmake的版本,太低不行1️⃣ #下载安装包 https://github.com/IntelLabs/control-flag/releases/tag/v1.1 cd control-flag-1.1 cmake . make -j make test #创建日志目录 [root@nfsFileSystem control-flag-1.1]# mkdir log 扫描 扫描p...

php 生成 RSS 订阅

rss文件本身是xml,只要找到它的规范,使用php 数组转xml 就可以了 代码实现 $data=[ 'title'=>'写代码的崔哥', 'link'=>'https://www.cuiwei.net/', 'description'=>'一名PHP程序员,涉猎广泛:PHP,运维,前端,Android,iOS。会不定期给大家分享一些技术干货', 'language'=>'zh-cn', 'pubDate'=>gmdate ('l d F Y H:i:s', time()).' GMT', 'lastBuildDa...

Redis 实现限流

下面介绍两种方法 zset function uuid(){ $str = "123456790abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $uuid = ""; for ($i = 0; $i < 10; $i++) { $uuid .= $str[mt_rand(0, strlen($str) - 1)]; } return $uuid; } $time = time(); $key='limit:100'; $val = uuid(); $redis = n...

php 使用 Kafka

kafka没有重试机制不支持消息重试,也没有死信队列,因此使用kafka做消息队列时,如果遇到了消息在业务处理时出现异常,就会很难进行下一步处理。应对这种场景,需要自己实现消息重试的功能。 自己实现重试机制 cli #停止 kafka-server-stop.sh #前台启动 kafka-server-start.sh config/server.properties #守护进程 kafka-server-start.sh -daemon config/server.properties #新建名为test2的topic,包含2个分区,1个副本 kafka-topics.sh --boots...

elasticsearch 分词

安装中文、拼音分词 https://github.com/medcl/elasticsearch-analysis-ik https://github.com/medcl/elasticsearch-analysis-pinyin 下载和elasticsearch对应的版本,解压后移到plugins目录 root@57d58faf9b1e:/usr/share/elasticsearch/plugins# ls ik pinyin 重启elasticsearch使生效 测试一下 默认分词 curl -H "Content-Type: application/json" -XPOST 'loc...

elasticsearch 3种分页方式

本文将提供原始restfull api和elasticsearch-php的示例 from + size 不适合深度分页,max_result_window默认10k size, from类似sql语句里的limit, 如limit {from} {size}; size:每页条数 from:从第几个行开始,默认0 curl curl -H "Content-Type: application/json" -XGET 'localhost:9200/article/_search?pretty' -d' { "size": 2, "from": 0 }' php publi...

PHP 的一个依赖管理工具 - Composer

安装 curl -sfL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer 包的来源 VCS(线上版本控制系统) composer.json { "repositories": [ { "type": "vcs", "url": "https://github.com/username/hello-world" } ], "require": { "acm...

基于docker的php开发环境,多容器

之前写过一篇 vagrant + virtualbox搭建一个可移动的开发环境,现在有了更好的选择,基于docker的php开发环境 拥有前者所有的优点 https://github.com/chudaozhe/dev-environment-php