Submitted by gouki on 2011, March 3, 10:12 PM
或许很多人在看到我博客的上面微勃图片的时候肯定很吃惊:求财付通0.5元支付宝返还。
事实上,在发出这条消息的时候,虫少侠(http://www.enjoyphp.com/)就在财付通上给我了,当然,我立马从支付宝返还了,还的当然不止0.5元。
这是上周日我在测试财付通支付的时候因为没钱也不愿意绑定号码的时候遇到的问题,所幸还是有朋友愿意提供了钱,而不是让别人误会我在诈骗。。。
------------------------------------------------------------------
第二个就是http://codeany.com/,这是一个基于PHPRPC的内容分析的接口,用网站上的介绍来说就是:在Codeany在线接口的帮助下,引入站内检索,正文提取,热词提取和SEO优化,智能垃圾评论判定等服务,就跟在饮料机上接一杯饮料一样简单.立即可用,无需开发!
当然我不能这样见解,准备好好看看htmlSQL这个玩意,感觉这个东西有点象YQL,但又不太一样,毕竟YQL是属于在线版本而且调用是有次数限制的,htmlSQL已经比较老了,现在不更新了,用laoliu.me站长来说,如果和phpQuery配合使用那是相当的HIGH呀,准备抽空看看。
-----------------------------------------------------------------
又在看读取excel文件的class了,确实需要这样的工具,所幸现在已经成型的Class非常多,很方便就能解决问题。比如phpexcel,黑黑。当然也有非常小的工具,只有几十行,但照样能够读取,只是功能差一点而已。不过,对于我只需要读取sheet内容的人来说就非常适合了。
----------------------------------------------------------------
听说DZX2快出来了,内置整合QQ Connect,这让很多站长很兴奋认为这样是会简化用户注册会带来大量的流量。我是觉得这玩意没什么大用处。。。。
Misc | 评论:1
| 阅读:15575
Submitted by gouki on 2011, March 2, 9:32 PM
前两天看的文章里刚刚说ECMA 262中的一些String特性,又正好看到一篇博客介绍一些其他操作的实现,比如foreach,这个对于PHP用户来说就太常用了,而以前在javascript中只能用for(i in arr)来实现,虽然都没有问题,但毕竟看起来怪怪的。
上次的文章在这里:Javascript中各种trim的实现,这次的文章引用自Javascript1.6数组新特性和jquery的几个工具方法。
原文如下,其中会插入自己的内容,会特别标记
JavaScript 1.6 引入了几个新的Array 方法,具体的介绍见:New in JavaScript 1.6 。这些方法已经被写进了ECMA262 V5。现代浏览器(IE9/Firefox/Safari/Chrome/Opera)都已经支持,但IE6/7/8不支持。jquery的工具方法中提供了类似的功能。【膘叔:上次在讲trim的时候自己也测试过,确实IE8不支持,低于IE8的就更不用想了】
1、Array.forEach()和jquery的$().each()。在数组中的每个项上运行一个函数。类似java5 增强的for循环。
JavaScript代码
- var ary = [2,4,6,8];
-
-
- ary.forEach(function(i){alert(i);});
-
-
- $(ary).each(function(){alert(this);});
-
- $(ary).each(function(index,item){alert(item);});
- //膘叔:这个相当于PHP中如下代码。。
- while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
2、Array.filter()和jquery的$.grep()。在数组中的每个项上运行一个函数,并将函数返回真值的项作为数组返回。简单的说就是用一个条件过滤掉不符合的数组元素,剩下的符合条件的元素组合成新的数组返回。
JavaScript代码
- var ary = [2,4,6,8];
-
-
- var otherAry1 = ary.filter(function(item){return item>4;});
- alert(otherAry1);
-
-
-
-
- var otherAry2 = $.grep(ary,function(item,index){return item>4;});
- alert(otherAry2);
- //膘叔:PHP中有类似函数,比如array_filter,也是可以通过callback来处理
3、Array.map()和jquery的$.map()。在数组中的每个项上运行一个函数,并将全部结果作为数组返回。这个方法非常强大,尤其是作用于DOM数组时(在abcc项目上用过,对每个查询模块DOM生成查询字符串)。简单说就是把每个数组元素运算的结果作为新数组元素(还是很拗口)【膘叔:php中有array_map,array_walk等】
JavaScript代码
- var ary = [2,4,6,8];
-
-
- var newAry1 = ary.map(function(item){return item+1;});
- alert(newAry1);
-
-
- var newAry2 = $.map(ary,function(item,index){return item+1;});
- alert(newAry2);
4、Array.every()方法。检查数组元素是否都符合某个条件,只要有一个不符合返回false,否则返回true
JavaScript代码
- var ary = [2,4,6,8,10];
-
- alert(ary.every(function(item){return item>1}));
- alert(ary.every(function(item){return item>2}));
5、Array.some()方法。检查数组中元素是否符合某个条件,只要有一个符合返回true,否则返回false
JavaScript代码
- var ary = [2,4,,6,8,10];
-
- alert(ary.some(function(item){return item>9;}));
- alert(ary.some(function(item){return item>10;}));
最后给出 IE6/7/8的解决方案,让这些浏览器完美支持JS1.6的Array新方法。
JavaScript代码
- -function(){
-
- function applyIf(o, c) {
- if(o) {
- for(var p in c) {
- if(o[p]===undefined) {
- o[p] = c[p];
- }
- }
- }
- return o;
- }
- applyIf(Array.prototype, {
- indexOf : function(obj, idx) {
- var from = idx == null ? 0 : (idx < 0 ? Math.max(0, arr.length + idx) : idx);
- for(var i = from, l = this.length; i < l; i++) {
- if(i in this && this[i] === obj) {
- return i;
- }
- }
- return -1;
- },
- lastIndexOf : function(obj, idx) {
- var len = this.length, from = idx == null ? len - 1 : idx;
- if(from < 0) {
- from = Math.max(0, len + from);
- }
- for(var i = from; i >= 0; i--) {
- if (i in this && this[i] === obj) {
- return i;
- }
- }
- return -1;
- },
- every : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this && !fn.call(thisObj, this[i], i, this)) {
- return false;
- }
- }
- return true;
- },
- some : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this && fn.call(thisObj, this[i], i, this)) {
- return true;
- }
- }
- return false;
- },
- filter : function(fn, thisObj) {
- var l = this.length, res = [], resLength = 0;
- for(var i = 0; i < l; i++) {
- if(i in this) {
- var val = this[i];
- if(fn.call(thisObj, val, i, this)) {
- res[resLength++] = val;
- }
- }
- }
- return res;
- },
- map : function(fn, thisObj) {
- var l = this.length, res = [];
- for(var i = 0; i < l; i++) {
- if(i in this) {
- res[i] = fn.call(thisObj, this[i], i, this);
- }
- }
- return res;
- },
- forEach : function(fn, thisObj) {
- var l = this.length;
- for(var i = 0; i < l; i++) {
- if(i in this) {
- fn.call(thisObj, this[i], i, this);
- }
- }
- }
- });
- }();
------EOF----
最后这一段有事没事可以参考一下哦,毕竟这些都是可以拿来做参考的,比如象最后一个foreach,可以好好学学这些代码哦。
最后,var evens = [i for each (i in numbers) if (i % 2 == 0)];,看到这个,有没有感觉很象python的写法???这个是javascript 1.7中的写法了,看看这里的介绍:https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Working_with_Array-like_objects
Tags: jquery
Javascript | 评论:0
| 阅读:19161
Submitted by gouki on 2011, March 1, 9:04 PM
时间果然是无情的,过去了就永远过去了。表弟比我小六岁,如今也成家了。祝福他永远幸福。愿天下有情人都不是同父异母的兄妹,还是终成眷属吧
自 WAP 发表
Misc | 评论:0
| 阅读:14592
Submitted by gouki on 2011, February 28, 10:29 PM
昨天加班折腾了一下商铺的支付流程,也算是测试了这些接口,不过还是以alipay和tenpay接口居多(即支付宝和财务通接口)
说实话,财务通的接口有点乱,但有一点好处,每个接口的名称都不一样,不同的接口可以很容易认出来,而支付宝就不一样,名称是一样的,但代码和结构不太一样。累了一点。
不过,细分起来这些接口无非就是那几样东西
1、参数,这些都是固定的,有顺序,所以,其实是很方便的,参考一下文档即可。然后做一下MD5进行sign,这些是用来做数据校验的。(有一些接口是对GET参数按照key进行sort而处理的,这种最方便,直接ksort就OK了,如果不是就更方便按顺序录入参数就可以了。)
2、几个固定的URL,接口的URL,notify_url,return_url,了解了这些东西之后就好处理了。
无非就是这些东西,因为都是转向到支付页面进行处理的,所以也不用过多的担心,根据接口来就行了,当然为了要在支付宝或者财务通里看到订单的详细内容,需要那些Desc里写详细,当然你自己平台上的订单号也要传递过去,否则日后无法对帐。
由于我测试 的都是即时到账接口,所以没有什么特别多的经验可以谈,只是我自己了解后做的小记录而已。
Tags: alipay, tenpay, payment
PHP | 评论:0
| 阅读:17855
Submitted by gouki on 2011, February 27, 9:15 PM
说到trim,其实这真的让无数前端郁闷。比如在处理input框里内容的时候,都会需要处理input内容的左右空格。但让人郁闷的是,String里居然没有原生方法,而每个人的实现方法都会不一样,效率也各有不同。
但是,新版的ECMA-262里已经表示有此方法了:
- 15.5.4.20 String.prototype.trim ( )
-
- The following steps are taken:
-
- 1. Call CheckObjectCoercible passing the this value as its argument.
- 2. Let S be the result of calling ToString, giving it the this value as its argument.
- 3. Let T be a String value that is a copy of S with both leading and trailing white space removed. The definition
- of white space is the union of WhiteSpace and LineTerminator .
- 4. Return T.
-
- NOTE The trim function is intentionally generic; it does not require that its this value be a String object. Therefore, it
- can be transferred to other kinds of objects for use as a method.
本文摘自http://www.cnblogs.com/snandy/archive/2011/02/26/1965866.html,只是经过我自己的整理了啦。
第一种:这种是大多数人都会写的,也是流传最多的代码了吧?
JavaScript代码
- String.prototype.trim = function() {
-
-
- return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
- }
第二种:来自motools:
JavaScript代码
- function trim(str){
- return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, '');
- }
第三种:这是jQuery的,jquery的方法类似于第一种:
JavaScript代码
- function trim(str){
- return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');
- }
第四种是来自所摘博客中最写的:Steven Levithan 在进行性能测试后提出了在JS中执行速度最快的裁剪字符串方式,在处理长字符串时性能较好:
JavaScript代码
- function trim(str){
- str = str.replace(/^(\s|\u00A0)+/,'');
- for(var i=str.length-1; i>=0; i--){
- if(/\S/.test(str.charAt(i))){
- str = str.substring(0, i+1);
- break;
- }
- }
- return str;
- }
博客中还写了这么一点,那就是Molliza Gecko 1.9.1引擎中还给String添加了trimLeft ,trimRight 方法。
这让我想起了PHP的代码,比如ltrim,rtrim,trim之类的
Tags: js, trim
Javascript | 评论:0
| 阅读:24207