首页 » 作者存档: 信海龙 ( 第 10 页 )

Author Archives: 信海龙

php中assert方法的安全问题

 

php中assert本来是用于调试的,如果assert方法内的代码不为true,则给个Warning提醒。如下面的代码。 <?php assert('1==2'); ?> 执行后会有如下输出: Warning: assert(): Assertion "1==2" failed in D:\green\APMServ5.2.6\www\htdocs\phpinfo.php on line 2 有个assert_option方法可以对assert进行一些控制 ...

linux查看进程端口号,进程id,运行环境变量等信息

 

如何查看进程的端口号? $ netstat -lnp | grep exf tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 5791/exfilter 注释:上面命令中的exfilter是进行名称.上面的9101就是监控的端口号,5791是进程的进程id。 如果进程没有像exfilter一样监控一个端口,如何查看进程的id? ps aux | grep exfilter ro ...

在php中如何使用json_decode解析gbk编码的json字符串

 

今天看到csdn的bbs上有人问如何用json_decode解析gbk编码的串。 大家都知道,json都是utf8编码的。json_encode后的字符串都是会变成"\u4fe1\u6d77\u9f99"格式。 如下面的代码: $arr = "信海龙"; echo json_encode($arr); 输出结果为:"\u4fe1\u6d77\u9f99" 如果你有一个符合json格式的gbk编码的字符串,如 ...

从MySQL到Redis 提升数据迁移的效率

 

场景是从MySQL中将数据导入到Redis的Hash结构中。当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中。这样可能没什么错,但是速度会非常慢。而如果能够使MySQL的查询输出数据直接能够与Redis命令行的输入数据协议相吻合,可能就省事多了。 根据测试800w的数据迁移,时间从90分钟缩短到2分钟。 具体案例如下 ...

统计一个二进制字符串中1的个数的算法

 

记得在吴军的《数学之美》中有一章讲到布尔代数和搜索引擎的索引。大概是讲通过一个二进制字符串来标识当前关键词在那些文档中出现过。二进制字符串中1的位置就是出现这个词文档的id。 如,一淘 对应一个二进制字符串 1010001。其中在1,5,7三个位置出现了1,说明文档id为1,5,7的文章包含词“一淘”。但是在书中没有说 ...

使用正则检测是否为utf8编码

 

以下函数用来检测字符编码是不是utf-8,是返回true,不是返回false。 function is_utf8($string) { return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2 ...

utf8编码规则

 

UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。 UTF-8是一种变长字节编码方 ...

gbk和utf8编码自动识别方法[php版]

 

目前中文网页主流的编码为gbk和utf8两种编码。因此,我们做编码识别的前提是,编码不是gbk就是utf8. 编码自动识别的基本思想如下: 1.看给定的字节串是否符合utf8编码规则。如果不符合则为gbk编码。具体utf8编码规则件日志《utf8编码规则》。 2.如果给定的字节串中没有符合utf8三字节规则的,则为gbk编码。中文在utf8中 ...

如何观察进程的内存占用情况

 

概述       想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果 ...

在Linux中使用线程

 

我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。 首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码: #include 当然,进包含一个头文件是 ...

yac和memcache性能对比测试

 

yac是Laruence开发的一个php进程共享内存的开源项目。详情可以查看。http://www.laruence.com/2013/03/18/2846.html memcache就不用多说了,如果你不知道拿说明你不是个真正的程序猿。 从应用场景来说,yac相当于本地的memcache,即php程序和memcache搭建在一台服务器上。如果本机的php进程间想共享数据,可以使用yac或 ...