[原]Bash3的key-value数组使用

    平常工作中会遇到很多需要打很多命令的操作,最方便的时写成一个shell脚本让他帮你完成。会懒的程序员才是好程序猿。

    这次我是在写一个需要同步fork库与主库的代码的时候遇到的,首先我需要同步很多个fork库,其次,每次主库都有一个URL,不可能都背下来,每次同步都要运行五六个命名,时间久了以后,自然非常烦。如果在其他语言中,很明显,一个key-value的数组/map之类的就可以直接对应库和url之间的关系了。但是查到bash3的时候居然没有,只能使用数字索引的一维数组。(bash4已经有了),没办法,既然没有自定义key,只能把key放在value里面,自己去解析了。

    上菜。

hgReg=(
	"key1_:_value1" 
	"key2_:_value2" 
	"key3_:_value3"
)
#数组使用 _:_ 这个符号组合来分割,如果有冲突可以替换成别的,前半部分为key,后半部分为value
function process_array() {
	declare -a hash=("${!1}")
	key="${2}"
	for k in "${hash[@]}"; do
		if [ $key = ${k%%_:_*} ];then
			echo ${k##*_:_}
		fi
 	done
}
#调用方式 结果是:value1
echo $(process_array hgReg[@] "key1")

 

Code | wwpeng | | (0) |

[译] PHP5.6的新特性

    原文链接:http://www.sitepoint.com/new-features-php-5-6/

    前面两段是作者吐槽PHP核心开发者的。。我们看重点。。此处省略500字。。。

    CLI服务器中得MIME类型

    MIME类型在php中用于输出其他非PHP类型的内容,也就是说你可以输出一个不是text/html类型的内容。当你执行一个PHP页面,默认输出的是text/html,但是你能用headers去设置他。例如PDF和生成PDF,因为通常的服务器都是HHVM,nginx,apache等,所以当服务器知道是一个不同的MIME类型,服务器知道怎样去根据文件的后缀去给他一个默认类型。而不必跑到PHP中去确认。从PHP5.4的命令行服务器只有几个MIME至今,这个版本将要扩充到几十个。可以肯定的说,所有的MIME类型都将内置在PHP服务器当中了。

    内建运算符重载

    这个功能对于用PHP来做web开发的开发者来说应该接触不到,因为是“内部”的。内部的意思是:非用户空间中得,用户空间是PHP开发者们使用的区域。只有内部类使用他,以使开发更加简洁和可读性更好。在这里有更详细的解释。

    现在可以上传超过2G的文件    

    知道5.6,之前所有的PHP版本上传文件都不可以超过2G,这已经是过去式了。新版的changelog表明,现在已经支持上传任意大小的文件了。

    POST数据的内存使用量下降

    POST数据的内存使用量已经下降了2-3倍,并且取消了这两个设置:always_populate_raw_post_data 在 php.ini 里面的设置,以及 $HTTP_RAW_POST_DATA 这个超全局变量。这意味着你不能再用原来的方式访问post数据。需要依赖于另一种解决方案:

$postdata = file_get_contents("php://input");

 当这个表单被分成多个部分时,是无法用 ://input 获得POST的数据的(换句话说,如果这个表单中有一个文件域的话,就不行)

Continue reading

师夷长技 | wwpeng | | (0) |