Don 发布的文章

svn status 状态详解

status (stat, st): 显示工作副本中目录与文件的状态。

用法: status [PATH...]

未指定参数时,只显示本地修改的条目(没有网络访问)。
使用 -q 时,只显示本地修改条目的摘要信息。
使用 -u 时,增加工作版本和服务器上版本过期信息。
使用 -v 时,显示每个条目的完整版本信息。

输出的前七栏各占一个字符宽度。

每一栏的含义

  1. 第一栏: 表示一个项目是增加、删除,还是修改

    “ ” 无修改
    “A” 增加
    “C” 冲突
    “D” 删除
    “I” 忽略
    “M” 改变
    “R” 替换
    “X” 未纳入版本控制的目录,被外部引用的目录所创建
    “?” 未纳入版本控制
    “!” 该项目已遗失(被非 svn 命令删除)或不完整
    “~” 版本控制下的项目与其它类型的项目重名
  2. 第二栏: 显示目录或文件的属性状态

    “ ” 无修改
    “C” 冲突
    “M” 改变

- 阅读剩余部分 -

require_once导致的一次Bug

代码如下:

public function test($table) {
    require_once ROOT_PATH . '/config/db.config.php';
    $result = false;

    if (!$DB_CONFIG[$table]) {
        return $result;
    }

    // 代码省略
}

上线后发现test方法没执行,加断点调试后发现走到这里的if判断里直接return掉了。
断点调试,发现$DB_CONFIG为NULL,这是什么灵异的问题。

检查代码后,发现是由于require_once导致的。
这里如果在函数外其他地方加载了db.config.php文件,这里就不再加载这个文件,导致$DB_CONFIG这个变量为空。
改为require后恢复正常。

总结

对于配置文件,不要使用require_once进行加载。
另外也不推荐使用require_once进行文件加载,具体见《再一次, 不要使用(include/require)_once》

phpMyAdmin 4.2.x 修改了导出数据库的格式

表test结构说明

字段名说明
key主键,自增
value

导出后的sql

--
-- 表的结构 `test`
--

CREATE TABLE IF NOT EXISTS `test` (
  `key` int(11) unsigned NOT NULL,
  `value` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `test`
--
ALTER TABLE `test`
 ADD PRIMARY KEY (`key`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `test`
--
ALTER TABLE `test`
MODIFY `key` int(11) unsigned NOT NULL AUTO_INCREMENT;

可以看到这里主键和自增都是单独的命令了。

搜索到的相关资料:http://www.v2ex.com/t/123883

escape/encodeURI/encodeURIComponent的区别

示例

先看一个例子:

var string = '~!@#$%^&*(){}[]=:/,;?+\'"\\';
console.log(escape(string) + '\n' + encodeURI(string) + '\n' + encodeURIComponent(string));

输出结果:

%7E%21@%23%24%25%5E%26*%28%29%7B%7D%5B%5D%3D%3A/%2C%3B%3F+%27%22%5C
~!@#$%25%5E&*()%7B%7D%5B%5D=:/,;?+'%22%5C
~!%40%23%24%25%5E%26*()%7B%7D%5B%5D%3D%3A%2F%2C%3B%3F%2B'%22%5C 

区别

escape() will not encode: @*/+
encodeURI() will not encode: ~!@#$&*()=:/,;?+'
encodeURIComponent() will not encode: ~!*()'

参考资料

http://jotcmd.com/96/escape-encodeuri-compare/
http://xkr.us/articles/javascript/encode-compare/