PHP循环实现编码互转函数

2011年05月19号
没有评论 283次浏览

/**
* 循环实现编码互转
*
* @param string $param(字符串,对象,或者数组),$currCharset当前编码,$toCharset期望编码
* @return 参数类型
*/
function zhandi_iconv($param,$currCharset,$toCharset){
if ($currCharset != $toCharset){
if (is_string($param)){
return ecs_iconv($currCharset, $toCharset, $param);
}
elseif (is_array($param)){
foreach ($param as $key => $value){
$param[$key] = zhandi_iconv($value);
}
return $param;
}
elseif (is_object($param)){
foreach ($param as $key => $value){
$param->$key = zhandi_iconv($value);
}
return $param;
}
else{
return $param;
}
}
return $param;
}

类别PHP 标签

PHP对象转成数组的函数

2011年05月19号
没有评论 334次浏览

/**
* 对象转数组
* @author 佚名
* @param object $obj
* @return array
*/
function object_to_array($obj){
$_arr = is_object($obj) ? get_object_vars($obj) : $obj;
foreach ($_arr as $key => $val){
$val = (is_array($val) || is_object($val)) ? $this->object_to_array($val) : $val;
$arr[$key] = $val;
}
return $arr;
}

类别PHP 标签

PHP中in_array函数的疑惑

2011年05月19号
没有评论 225次浏览

偶然之间发现一个问题,就产生了对in_array函数的一些疑惑性思考。先看这个问题

$a=array(“1,2,3″,”4″);
 
if(in_array(1,$a)){
 
echo “条件成立”;
} 阅读全文

类别PHP 标签

PHP制作安装程序的原理与步骤详细讲解

2011年05月12号
没有评论 283次浏览

本文讲解PHP制作安装程序的原理与步骤
1、制作PHP安装程序的原理
        PHP程序的安装原理就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。
2、制作PHP安装程序的步骤
        step1 检查目录或文件的权限
        step2 修改或填加配置文件
        step3 检查配置文件正确性
        step4 导入数据库
        step5 锁定或删除安装文件 阅读全文

类别PHP 标签

优雅的 NoSQL

2011年05月12号
没有评论 286次浏览

NoSQL 数据库在上年炒得很热,于是我也萌生了使用 NoSQL 数据库写一个应用的想法。首先来认识一下 NoSQL。NoSQL 是一个缩写,含义从最初的 No-SQL 到现在已经成为了 Not-Only-SQL。确实后面一种解释比较符合 NoSQL 的使用场景。

现在网络上被人所知的 NoSQL 数据库可以在这个网页(http://nosql-database.org)看到。这个列表林林总总一大堆,要选择哪个数据库入手呢?
1. 选择非关系数据库

在我关注的 Web 领域,特别是 Ruby on Rails 社区,比较多提到的是这几个数据库:

* Cassandra , apache基金会下的非关系数据库。早前一段时间传言 Twitter 要用 Cassandra 替代 Mysql,一时间坊间流传“NoSQL 要革 SQL 的命了!”。不过 Twitter 博客澄清,Twitter 只是在部分领域使用 Cassandra,存放 Tweets 的主数据库依然是 MySQL。
* MongoDB,10gen 公司的开源非关系数据库产品,可以选择他们公司的商业支持。RoR 相关的插件挺多。
* CouchDB,另一个apache基金会下的非关系数据库。
* Redis,特点是运行在内存中,速度很快。相比于用来持久化数据,也许更接近于 memcached 这样的缓存系统,或者用来实现任务队列。(比如resque) 阅读全文

PHP实现国际化支持 使用MO文件制作语言包 .mo .po

2011年05月12号
没有评论 288次浏览

使用MO文件做语言包,可以很轻松实现语言包和皮肤分离。不像现在一套皮肤只能有一个语言包。 po和mo文件
PO 是 Portable Object (可移植对象)的缩写形式;
MO 是 Machine Object (机器对象) 的缩写形式。
PO 文件是面向翻译人员的、提取于源代码的一种资源文件。当软件升级的时候,通过使用 gettext 软件包处理 PO 文件,可以在一定程度上使翻译成果得以继承,减轻翻译人员的负担。MO 文件是面向计算机的、由 PO 文件通过 gettext 软件包编译而成的二进制文件。程序通过读取 MO 文件使自身的界面转换成用户使用的语言。 阅读全文

类别PHP 标签

Linux查找文件内容的常用命令方法

2011年04月25号
没有评论 277次浏览

从文件内容查找匹配指定字符串的行:

$ grep “被查找的字符串” 文件名从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名查找时不区分大小写:

$ grep –i “被查找的字符串” 文件名查找匹配的行数:

$ grep -c “被查找的字符串” 文件名从文件内容查找不匹配指定字符串的行:

$ grep –v “被查找的字符串” 文件名从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name “*.log” | xargs grep “ERROR”

类别服务器 标签,

如何判断VPS是基于哪种虚拟技术?Xen、OpenVZ、Xen HVM还是VMware

2011年04月08号
没有评论 397次浏览

对于VPS新手来说,怕被无良的奸商给忽悠,下的Xen的却给的OpenVZ的,如何来判断自己买的VPS是那种虚拟技术的,下面整理一些常见的方法。

1、通过系统上的相关目录或文件判断

执行:ls /proc/ ,一般Xen的VPS,/proc目录下面会有xen的目录,openvz的会有vz目录。

2、执行:free -m 看内存,openvz的没有swap,当然也有xen的没有swap,但是xen的是可以加的,openvz不行。 阅读全文