首页 » 编程语言 ( 第 6 页 )

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进行一些控制 ...

在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编码的字符串,如 ...

统计一个二进制字符串中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 ...

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

 

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

在Linux中使用线程

 

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

php-fpm启动报错Segmentation fault $php_fpm_BIN $php_opts

 

今天QA使用php-fpm启动php报错。具体信息如下: -bash-3.2$ ~/script/client/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm [29-Jul-2013 16:11:55] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root /home/script/client/php-fpm: line 52: 11678 Segme ...

从php的缓冲区说起

 

大家应该都知道php文件最终在浏览器上显示,走过3个缓冲阶段: php buffer=》web server buffer=》浏览器buffer。 先从php buffer开始讲起。 php buffer php运行的结果先放入缓冲区(buffer),只有当缓冲区满了或者php运行完毕,才将数据输出去。 缓冲区是通过php.ini中的output_buffering变量控制。output_buffering ...

php的 zend opcache VS apc 性能比较

 

如果你关注php,那么你会发现Zend Optimizer+将要包含在php5.5中发布。并且Zend Optimizer+更名为zend opcache。那么zend opcache的性能到底如何呢?今天我们就和另一款opcode的cache软件APC做下比较。 软件版本如下: PHP 5.4.14 (cli) (built: May  8 2013 18:05:07) APC-3.1.13 ZendOpcache-7.0.2 测试的php脚本程序 ...

php实现并发处理之curl篇

 

php在并发处理方面的确不如java好。但是也有一些方法可以实现并发处理。比如使用curl就可以实现url的并发请求。 看到网上有人说使用curl会导致阻塞,即所有的请求数据都获取完毕后一并返回,然后再进行数据处理。而不是获取一个请求的数据就处理一个数据。其实这种说法是不对的,只能说明他在代码实现上有问题。 在php ...

php实现bigpipe

 

BigPipe是facebook发明的一种页面加载技术。其实也不是什么新技术了,也有很多文章进行说明。但是在网上,具体讲如何使用php实现bigpipe的文章很少,并且有些文章还不很准确。bigpipe的核心思想是并行,服务器生成数据和浏览器渲染数据的并行。 在实现bigpipe时有几点注意: 1.如果使用nginx作为web服务器,那么nginx可 ...

php扩展中如何定义线程安全的全局对象

 

传统的php裁剪类只能按位置裁剪。如按中间位置裁剪。这种裁剪方式可能会导致一个人被截成两段。为了解决这个问题,最近开发了一个php扩展(tclip),能自动识别人脸或者图像中其它重要区域,然后进行裁剪。裁剪效果如下: 原图: 如果按照从中间截取为 400 * 225 大小大图片。效果如下: 使用tclip扩展裁剪图片效果 ...