@@ -113,6 +113,7 @@ static zend_function_entry redis_functions[] = {
113113     PHP_ME (Redis , zRange , NULL , ZEND_ACC_PUBLIC )
114114     PHP_ME (Redis , zReverseRange , NULL , ZEND_ACC_PUBLIC )
115115     PHP_ME (Redis , zRangeByScore , NULL , ZEND_ACC_PUBLIC )
116+      PHP_ME (Redis , zCount , NULL , ZEND_ACC_PUBLIC )
116117     PHP_ME (Redis , zDeleteRangeByScore , NULL , ZEND_ACC_PUBLIC )
117118     PHP_ME (Redis , zCard , NULL , ZEND_ACC_PUBLIC )
118119     PHP_ME (Redis , zScore , NULL , ZEND_ACC_PUBLIC )
@@ -3081,6 +3082,54 @@ PHP_METHOD(Redis, zRangeByScore)
30813082}
30823083/* }}} */ 
30833084
3085+ /* {{{ proto array Redis::zCount(string key, int start , int end) 
3086+  */ 
3087+ PHP_METHOD (Redis , zCount )
3088+ {
3089+     zval  * object ;
3090+ 
3091+     RedisSock  * redis_sock ;
3092+     char  * key  =  NULL , * cmd ;
3093+     int  key_len , cmd_len , response_len ;
3094+     double  start , end ;
3095+ 
3096+     if  (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Osdd" ,
3097+                                      & object , redis_ce ,
3098+                                      & key , & key_len , & start , & end ) ==  FAILURE ) {
3099+         RETURN_FALSE ;
3100+     }
3101+ 
3102+     if  (redis_sock_get (object , & redis_sock  TSRMLS_CC ) <  0 ) {
3103+         RETURN_FALSE ;
3104+     }
3105+ 
3106+     cmd_len  =  redis_cmd_format (& cmd ,
3107+                     "*4"  _NL 
3108+ 
3109+                     "$6"  _NL 
3110+                     "ZCOUNT"  _NL 
3111+ 
3112+                     "$%d"  _NL  /* key_len */ 
3113+                     "%s"  _NL   /* key */ 
3114+ 
3115+                     "$%d"  _NL  /* start_len */ 
3116+                     "%F"  _NL   /* start */ 
3117+ 
3118+                     "$%d"  _NL  /* end_len */ 
3119+                     "%F"  _NL   /* end */ 
3120+ 
3121+                     , key_len , key , key_len 
3122+                     , double_length (start ), start 
3123+                     , double_length (end ), end );
3124+ 
3125+ 	REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
3126+ 	IF_ATOMIC () {
3127+ 	  redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL  TSRMLS_CC );
3128+ 	}
3129+ 	REDIS_PROCESS_RESPONSE (redis_long_response );
3130+ }
3131+ /* }}} */ 
3132+ 
30843133/* {{{ proto long Redis::zCard(string key) 
30853134 */ 
30863135PHP_METHOD (Redis , zCard )
0 commit comments