WEB页面JSON格式化显示和应用小技巧

Publish: July 4, 2020 Category: 小技巧 No Comments

如果使用JSON作为参数,JSON格式化显示在调试和简单配置系统中会经常用到。这里以PHP和JS为例子讲解如何更友好的显示JSON数据。

一 使用PHP来处理格式化显示JSON和使用JS来处理格式化显示JSON
先看下效果图:

上面这种效果是在html元素<pre>标签中显示的效果。通常我们拿到的数据是这种格式

{"username":"myname","password":"xsdasi349r034rdfasdfsaasdfasdfa","gender":"male","age":"12"}

如果有经过转义会是下面这种方式

{"username":"myname","password":"xsdasi349r034rdfasdfsaasdfasdfa","gender":"male","age":"12"}








阅读剩余部分...

MySQL基于距离半径的搜索和区域搜索POI实践

Publish: June 8, 2020 Category: 小技巧,代码分享 No Comments

因为应用是基于MySql的,所以我们的技术选型也是主要有两种:一种是多边形是否包含,一种是对每一个点进行计算。

首先看第一种:区域内搜索

在我们的业务平台中有很多景区的,每个景区都有围栏地址和中心点地址,我从中摘录一部分,这次重点关注fence_center也就是中心点字段。
我们的table定义如下:

CREATE TABLE `map` (
 `id` int(11) NOT NULL,
 `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '景区名称',
 `fence_center` point DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='景区表';

我先确定一个多边形围栏,然后直接查找在围栏内的点。这样的计算有一个问题,就是必须事先知道多边形区域,这种方式更适合按区域查找场景。


阅读剩余部分...

ubuntu下 lnmp 安装 tidy扩展

Publish: March 23, 2020 Category: 小技巧 No Comments

lnmp环境下安装扩展,简单记录。

进入到php源码目录:

cd /opt/lnmp1.6-full/src

lnmp 自动化脚本会在安装完成后将源文件删掉,需要自己解压

tar jxvf php-7.3.11.tar.bz2

进入源码目录

src/php-7.3.11/ext/tidy

执行phpize ,phpize是一个运行脚本,主要作用是检测php的环境还有就是在特定的目录生成相应的configure文件,这样makeinstall之后,生成的.so文件才会自动加载到php扩展目录下面。

/usr/local/php/bin/phpize 

阅读剩余部分...

MQTT客户端ID设计探索

Publish: March 16, 2020 Category: 小技巧 No Comments

客户机标识符是连接到MQTT Broker的每个MQTT客户机的标识符。对于Broker来说每个客户端都应该是唯一的。Broker使用它来标识客户机和客户机的当前状态。默认情况下是自动生成的。如果尝试使用相同的客户机标识符连接两个MQTT客户机,则Broker将拒绝连接。再开发中应该格外注意这件事,请确保您具有唯一的客户机id,否则您的客户机将被代理拒绝并可能显示为脱机。最糟糕的情况是导致重复clientid的客户端莫名的被Broker踢掉。

阅读剩余部分...

Nginx TCP端口转发和基于域名的HTTP流量转发

Publish: March 7, 2020 Category: 小技巧,运维 No Comments

开发过程中经常遇到这样的需求

  1. 需要基于某网关设备做负载均衡
  2. 内网中某台服务器提供外网访问服务
  3. 80端口流量区分

TCP端口转发

需求1、2归结起来说就是对TCP流量转发,nginx 原生支持tcp流量转发。

阅读剩余部分...