作者:AlbertWen
添加时间:2017-10-27 19:19:59
修改时间:2025-08-01 10:54:17
分类:
16.编程基础/Web安全
编辑
首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它。
mysql_real_escape_string() 和 addslashes() 的区别在于:
区别一:
addslashes() 不知道任何有关MySQL连接的字符集。如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'、"、\和\x00的字节进行转义。如果你正在使用不同于8位和UTF-8的其它字符,这些字节的值不一定全部都是表示字符'、"、\和\x00。可能造成的结果是,MySQL接收这些字符后出现错误。
作者:AlbertWen
添加时间:2018-10-16 23:41:10
修改时间:2025-08-12 04:13:09
分类:
08.Java基础
编辑
RPC 技术出来很多年了,出来的时候我估计还刚刚上大学,在国内,dubbo应该算是先驱者吧,下面的图更是RPC架构经典中的经典

作者:AlbertWen
添加时间:2018-11-12 23:08:35
修改时间:2025-08-12 05:06:49
分类:
08.Java基础
编辑
注:我这里只是记了下实际应用,很多细节上的东西没写进来,想学习JFinal的话,可以一边参考JFinal官方文档一边参考我这个,当然,水平有限,只做了一些简单的入门级代码
作者:AlbertWen
添加时间:2017-10-27 12:57:35
修改时间:2025-06-25 15:33:35
分类:
15.OpenResty_Lua
编辑
Windows不像Linux,Unix那样,ps -ef 查出端口和进程号,然后根据进程号直接kill进程。
Windows根据端口号杀死进程要分三步:
第一步 根据 端口号 寻找 进程号
C:\>netstat -aon|findstr "9050"
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2056
看到了吗,端口被进程号为2056的进程占用,继续执行下面命令:
第二步 根据 进程号 寻找 进程名称
C:\>tasklist|findstr "2056"
tor.exe 2056 Console 0 16,064 K
很清楚吧,tor占用了你的端口
第三步,在任务管理器下结束 tor.exe 该进程
作者:AlbertWen
添加时间:2017-10-27 12:52:47
修改时间:2025-08-12 04:57:58
分类:
14.Golang/Ruby
编辑
method
现在假设有这么一个场景,你定义了一个struct叫做长方形,你现在想要计算他的面积,那么按照我们一般的思路应该会用下面的方式来实现
package main
import "fmt"
type Rectangle struct {
width, height float64
}
func area(r Rectangle) float64 {
return r.width*r.height
}
func main() {
r1 := Rectangle{12, 2}
r2 := Rectangle{9, 4}
fmt.Println("Area of r1 is: ", area(r1))
fmt.Println("Area of r2 is: ", area(r2))
}
这段代码可以计算出来长方形的面积,但是area()不是作为Rectangle的方法实现的(类似面向对象里面的方法),而是将Rectangle的对象(如r1,r2)作为参数传入函数计算面积的。
作者:AlbertWen
添加时间:2019-03-31 12:22:26
修改时间:2025-08-18 11:10:33
分类:
15.OpenResty_Lua
编辑
由于 OpenResty 基于 Nginx ,所以天然的对请求 body 的读取细节与其他成熟 Web 框架有些不同。
作者:AlbertWen
添加时间:2016-04-13 23:05:44
修改时间:2025-07-08 17:52:56
分类:
13.C/C++/仓颉
编辑
应该是小试牛刀的时候了。
在 ANSI C 的标准库中,有一个 atexit()函数。如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数。
atexit()的原型定义如下:
int atexit(void (*func)(void));
作者:AlbertWen
添加时间:2016-01-10 08:59:30
修改时间:2025-08-12 05:07:10
分类:
18.系统设计/UML建模
编辑
现在,大部分App的接口都采用RESTful架构,RESTFul最重要的一个设计原则就是,客户端与服务器的交互在请求之间是无状态的,也就是说,当涉及到用户状态时,每次请求都要带上身份验证信息。实现上,大部分都采用token的认证方式,一般流程是:
- 用户用密码登录成功后,服务器返回token给客户端;
- 客户端将token保存在本地,发起后续的相关请求时,将token发回给服务器;
- 服务器检查token的有效性,有效则返回数据,若无效,分两种情况:
- token错误,这时需要用户重新登录,获取正确的token
- token过期,这时客户端需要再发起一次认证请求,获取新的token
作者:AlbertWen
添加时间:2015-12-15 16:09:00
修改时间:2025-06-30 15:41:14
分类:
11.PHP基础
编辑
后台往往需要导出各种数据到 Excel文档中。通常我们是导出 .csv文件格式,PHP导出函数参考代码如下:
/**
* 导出数据到CSV文件
*
* @param array $data 二维数组(模拟数据表记录)
* @param array $titleList 标题数组列表
* @param string $fileName CSV文件名
*/
function csv_export(&$data, $titleList = array(), $fileName = '')
作者:AlbertWen
添加时间:2017-10-29 20:47:55
修改时间:2025-08-12 05:06:48
分类:
14.Golang/Ruby
编辑
关于管道 Channel
- Channel 用来同步并发执行的函数并提供它们某种传值交流的机制。
- Channel 的一些特性:通过 channel 传递的元素类型、容器(或缓冲区)和 传递的方向由“<-”操作符指定。
c <- 123
,把值 123 输入到管道 c,<-c
,把管道 c 的值读取到左边,value := <-c
,这样就是读到 value 变量里面。