Category Archives: Notes

Tools for testing REST API

1. CURL curl是一个很强大很实用的工具: curl -v -X POST -H “Content-Type: application/json” -H “Accept: application/json” -d ‘{“id”:1, “method”:”message.query”, “jsonrpc”:”2.0″, “params”: {“user_id”:9} }’ http://fwso.cn/services/json-rpc 2. REST Client WizTools.org RESTClient是一个用Java写的工具, Swing界面,使用比较方便: 3. WFetch Windows下可以使用微软的WFetch, 功能比较齐全,但感觉不是很好用。

Posted in Notes | Tagged , , | Leave a comment

PHP in_array()与array_search的实现

今天看PHP源码的时候发现in_array与array_search是通过同一个函数php_search_array来实现的,只是最后一个参数不同. in_array的实现: PHP_FUNCTION(in_array) { php_search_array(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } array_search的实现: PHP_FUNCTION(array_search) { php_search_array(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); } php_search_array的代码: static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior) /* {{{ */ { zval *value, /* value to check for */ *array, /* array to check in */ **entry, /* … Continue reading

Posted in Notes, PHP | Tagged , | Leave a comment

查找数组中的唯一元素

问题 例如给定一个数组有101个元素,其实50个元素出现再次,只有一个仅出现一次,写一个函数找出该唯一的元素,元素均为整型。 1. 最差的方法 前提是元素都大于0. int findOdd(int *input, int len) { int i, j, z, *buff, blen = (int) (len / 2 + 1); buff = (int *) malloc(sizeof(int) * blen); for (i = 0; i < len; i++) { … Continue reading

Posted in Notes | Tagged , | Leave a comment

在JavaScript中使用in操作符

今天在阅读jQuery源码的时候看到在if中使用in操作符,发现原来in不仅仅是用在for中,看来对JavaScript的了解实在太少了:) 对我来说最有用的功能是像PHP中的in_array一样使用,其用途可以类似于PHP中的isset(感谢@littlexiang纠正),如下面的代码所示: var arr = [1, 2, 3, 4, 5]; var obj = { “4″: true, “6″:false, “9″:true, “11″:true }; if ( 2 in arr) { alert(’2 in arr’); } else { alert(’2 NOT in arr’); } if ( 4 … Continue reading

Posted in Notes, Web | Tagged , | 1 Comment

IE下Select InnerHTML的问题

在IE下,包括IE8, 9,不能使用innerHTML对select设置option内容,如下面的代码无法得到预期的结果: document.getElementById(‘mySelectId’).innerHTML = ‘ New value ‘; 这个问题在2003年就已经发布在微软支持网站上,但到IE9依然存在这个问题,微软似乎并不把它当成一个问题,详细请参考:http://support.microsoft.com/kb/276228,该文档提出了几种解决方案。 我倾向于采用文章中提到的第三种方法来替代innerHTML: var daysNode = document.getElementById(‘mySelectId’); function updateOptions () { while ( daysNode.firstChild ) { daysNode.removeChild( daysNode.firstChild ); } for (var i = 1; i < 10; i++) { var options = … Continue reading

Posted in Notes, Web | Tagged , , | Leave a comment