博采众长,精于一技。Live for love, work for dream.

strlen、mb_strlen计算中英文混排字符串长度

在php中常见的计算字符串长度的函数有:strlen和mb_strlen,下面是对这两个函数的比较说明(编码方式UTF8)

比较strlen和mb_strlen
当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)

$str='中文a字1符';
echo strlen($str);
echo '';
echo mb_strlen($str,'UTF-8');
//输出结果
//14
//6

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6

继续阅读 »

file_get_contents函数超时的解决方法

在网络状况比较差的情况下file_get_contents函数经常读取远程数据失败。
解决办法如下:

/*设置超时配合失败之后尝试多次读取,效果比原先好很多*/
$url = 'http://blog.rebill.info';
          $opts = array( 
           'http'=>array( 
	         'method'=>"GET", 
	         'timeout'=>1, //设置超时
		) 
	); 
	$context = stream_context_create($opts); 
	$contents = @file_get_contents($url,false,$context);	
?>

关于 php 的 count 函数

今天一个同事在Q群上考大家关于 php 的 count 函数的一些东东,大意是 count(’some string’) 会输出什么……印象中,以前跟谁讨论过这个。不过日子久远,已经有些模糊了。所以还是写下来,just4fun。

大部分实践者都知道 count(string) 输出的结果是 1,而不是有的人期望的 strlen(string)。如果输出 count(callback),会惊奇的发现结果也是 1。这是为什么呢?

继续阅读 »

谈php框架

在Web开发界打滚了几年,其实对Web框架的熟悉度不算太浅,但也不能算太深。

基于我个人对目前业界使用Web框架的观察,大略区分了以下数种类型。

注:基本上这是一篇嘴炮文,部份论点是个人想法,若有谬误还望指正。

继续阅读 »

Ubuntu下安装Nginx + PHP-FPM +MySQL

本文主要参考http://interfacelab.com/nginx-php-fpm-apc-awesome/,部分地方有改动。

Nginx


Nginx一定比Apache好吗?也不能这么说,各有各的优点。

PHP-FPM?

有些人或许会喜欢用Lighttpd中的spawn-fcgi,其实php-fpm比它更优越,详细介绍:http://syre.blogbus.com/logs/20092011.html

继续阅读 »

返回顶部