--- pHash.cpp.orig	2013-04-23 18:54:02 UTC
+++ pHash.cpp
@@ -36,17 +36,23 @@ struct ph_text_hash
 
 /* {{{ phpinfo logo definitions */
 
+#if PHP_VERSION_ID < 50500
 #include "php_logos.h"
 
 
 static unsigned char pHash_logo[] = {
 #include "pHash_logos.h"
 }; 
+#endif
 /* }}} */
 
 /* {{{ Resource destructors */
 int le_ph_video_hash;
+#if PHP_VERSION_ID >= 70000
+extern "C" void ph_video_hash_dtor(zend_resource *rsrc TSRMLS_DC)
+#else
 extern "C" void ph_video_hash_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+#endif
 {
 	ph_video_hash * resource = (ph_video_hash *)(rsrc->ptr);
 
@@ -58,7 +64,11 @@ extern "C" void ph_video_hash_dtor(zend_
 }
 
 int le_ph_image_hash;
+#if PHP_VERSION_ID >= 70000
+extern "C" void ph_image_hash_dtor(zend_resource *rsrc TSRMLS_DC)
+#else
 extern "C" void ph_image_hash_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+#endif
 {
 	ulong64 * resource = (ulong64 *)(rsrc->ptr);
 
@@ -67,7 +77,11 @@ extern "C" void ph_image_hash_dtor(zend_
 }
 
 int le_ph_audio_hash;
+#if PHP_VERSION_ID >= 70000
+extern "C" void ph_audio_hash_dtor(zend_resource *rsrc TSRMLS_DC)
+#else
 extern "C" void ph_audio_hash_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+#endif
 {
 	ph_audio_hash * resource = (ph_audio_hash *)(rsrc->ptr);
 
@@ -79,7 +93,11 @@ extern "C" void ph_audio_hash_dtor(zend_
 }
 
 int le_ph_txt_hash;
+#if PHP_VERSION_ID >= 70000
+extern "C" void ph_txt_hash_dtor(zend_resource *rsrc TSRMLS_DC)
+#else
 extern "C" void ph_txt_hash_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+#endif
 {
 	ph_text_hash * resource = (ph_text_hash *)(rsrc->ptr);
 
@@ -145,7 +163,9 @@ ZEND_GET_MODULE(pHash)
 /* {{{ PHP_MINIT_FUNCTION */
 PHP_MINIT_FUNCTION(pHash)
 {
+#if PHP_VERSION_ID < 50500
 	php_register_info_logo("PHASH_LOGO_ID", "", pHash_logo, 49651);
+#endif
 	le_ph_video_hash = zend_register_list_destructors_ex(ph_video_hash_dtor, 
 						   NULL, "ph_video_hash", module_number);
 	le_ph_image_hash = zend_register_list_destructors_ex(ph_image_hash_dtor, 
@@ -165,7 +185,9 @@ PHP_MINIT_FUNCTION(pHash)
 /* {{{ PHP_MSHUTDOWN_FUNCTION */
 PHP_MSHUTDOWN_FUNCTION(pHash)
 {
+#if PHP_VERSION_ID < 50500
 	php_unregister_info_logo("PHASH_LOGO_ID");
+#endif
 
 	/* add your stuff here */
 
@@ -203,7 +225,9 @@ PHP_MINFO_FUNCTION(pHash)
 	if (SG(request_info).request_uri) {
 		php_printf("%s", (SG(request_info).request_uri));
 	}   
+#if PHP_VERSION_ID < 50500
 	php_printf("?=%s", "PHASH_LOGO_ID");
+#endif
 	php_printf("' align='right' alt='image' border='0'>\n");
 
 	php_printf("pHash\n");
@@ -225,10 +249,12 @@ PHP_MINFO_FUNCTION(pHash)
 PHP_FUNCTION(ph_dct_videohash)
 {
 	ph_video_hash * return_res;
+#if PHP_VERSION_ID < 70000
 	long return_res_id = -1;
+#endif
 
 	const char * file = NULL;
-	int file_len = 0;
+	SIZETorINT file_len = 0;
 
 
 
@@ -249,7 +275,11 @@ PHP_FUNCTION(ph_dct_videohash)
 	else
 		RETURN_FALSE;
 
+#if PHP_VERSION_ID >= 70000
+	RETURN_RES(zend_register_resource(return_res, le_ph_video_hash));
+#else
 	return_res_id = ZEND_REGISTER_RESOURCE(return_value, return_res, le_ph_video_hash);
+#endif
 }
 /* }}} ph_dct_videohash */
 
@@ -261,10 +291,12 @@ PHP_FUNCTION(ph_dct_videohash)
 PHP_FUNCTION(ph_dct_imagehash)
 {
 	ulong64 * return_res;
+#if PHP_VERSION_ID < 70000
 	long return_res_id = -1;
+#endif
 
 	const char * file = NULL;
-	int file_len = 0;
+	SIZETorINT file_len = 0;
 
 
 
@@ -282,7 +314,11 @@ PHP_FUNCTION(ph_dct_imagehash)
 	else
 		return_res = hash;
 
+#if PHP_VERSION_ID >= 70000
+	RETURN_RES(zend_register_resource(return_res, le_ph_image_hash));
+#else
 	return_res_id = ZEND_REGISTER_RESOURCE(return_value, return_res, le_ph_image_hash);
+#endif
 }
 /* }}} ph_dct_imagehash */
 
@@ -293,10 +329,12 @@ PHP_FUNCTION(ph_dct_imagehash)
 PHP_FUNCTION(ph_texthash)
 {
 	ph_text_hash * return_res;
+#if PHP_VERSION_ID < 70000
 	long return_res_id = -1;
+#endif
 
 	const char * file = NULL;
-	int file_len = 0;
+	SIZETorINT file_len = 0;
 
 
 
@@ -316,7 +354,11 @@ PHP_FUNCTION(ph_texthash)
 	else
 		RETURN_FALSE;
 
+#if PHP_VERSION_ID >= 70000
+	RETURN_RES(zend_register_resource(return_res, le_ph_txt_hash));
+#else
 	return_res_id = ZEND_REGISTER_RESOURCE(return_value, return_res, le_ph_txt_hash);
+#endif
 }
 /* }}} ph_texthash */
 
@@ -327,12 +369,14 @@ PHP_FUNCTION(ph_texthash)
 PHP_FUNCTION(ph_audiohash)
 {
 	ph_audio_hash * return_res;
+#if PHP_VERSION_ID < 70000
 	long return_res_id = -1;
+#endif
 
 	const char * file = NULL;
-	int file_len = 0;
-	long sample_rate = 5512;
-	long channels = 1;
+	SIZETorINT file_len = 0;
+	zppLONG sample_rate = 5512;
+	zppLONG channels = 1;
 
 
 
@@ -362,7 +406,11 @@ PHP_FUNCTION(ph_audiohash)
 	else
 		RETURN_FALSE;
 
+#if PHP_VERSION_ID >= 70000
+	RETURN_RES(zend_register_resource(return_res, le_ph_audio_hash));
+#else
 	return_res_id = ZEND_REGISTER_RESOURCE(return_value, return_res, le_ph_audio_hash);
+#endif
 }
 /* }}} ph_audiohash */
 
@@ -386,8 +434,17 @@ PHP_FUNCTION(ph_image_dist)
 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr", &h1_res, &h2_res) == FAILURE) {
 		return;
 	}
+#if PHP_VERSION_ID >= 70000
+	if ((h1 = (ulong64 *)zend_fetch_resource2(Z_RES_P(h1_res), "ph_image_hash", h1_resid, le_ph_image_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+	if ((h2 = (ulong64 *)zend_fetch_resource2(Z_RES_P(h2_res), "ph_image_hash", h2_resid, le_ph_image_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+#else
 	ZEND_FETCH_RESOURCE(h1, ulong64 *, &h1_res, h1_resid, "ph_image_hash", le_ph_image_hash);
 	ZEND_FETCH_RESOURCE(h2, ulong64 *, &h2_res, h2_resid, "ph_image_hash", le_ph_image_hash);
+#endif
 
 
 
@@ -415,15 +472,24 @@ PHP_FUNCTION(ph_video_dist)
 	int h2_resid = -1;
 	ph_video_hash * h2;
 
-	long thresh = 21;
+	zppLONG thresh = 21;
 
 
 
 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr|l", &h1_res, &h2_res, &thresh) == FAILURE) {
 		return;
 	}
+#if PHP_VERSION_ID >= 70000
+	if ((h1 = (ph_video_hash *)zend_fetch_resource2(Z_RES_P(h1_res), "ph_video_hash", h1_resid, le_ph_video_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+	if ((h2 = (ph_video_hash *)zend_fetch_resource2(Z_RES_P(h2_res), "ph_video_hash", h2_resid, le_ph_video_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+#else
 	ZEND_FETCH_RESOURCE(h1, ph_video_hash *, &h1_res, h1_resid, "ph_video_hash", le_ph_video_hash);
 	ZEND_FETCH_RESOURCE(h2, ph_video_hash *, &h2_res, h2_resid, "ph_video_hash", le_ph_video_hash);
+#endif
 
 
 
@@ -452,7 +518,7 @@ PHP_FUNCTION(ph_audio_dist)
 	int h2_resid = -1;
 	ph_audio_hash * h2;
 
-	long block_size = 256;
+	zppLONG block_size = 256;
 	double thresh = 0.30;
 
 
@@ -460,8 +526,17 @@ PHP_FUNCTION(ph_audio_dist)
 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr|ld", &h1_res, &h2_res, &block_size, &thresh) == FAILURE) {
 		return;
 	}
+#if PHP_VERSION_ID >= 70000
+	if ((h1 = (ph_audio_hash *)zend_fetch_resource2(Z_RES_P(h1_res), "ph_audio_hash", h1_resid, le_ph_audio_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+	if ((h2 = (ph_audio_hash *)zend_fetch_resource2(Z_RES_P(h2_res), "ph_audio_hash", h2_resid, le_ph_audio_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+#else
 	ZEND_FETCH_RESOURCE(h1, ph_audio_hash *, &h1_res, h1_resid, "ph_audio_hash", le_ph_audio_hash);
 	ZEND_FETCH_RESOURCE(h2, ph_audio_hash *, &h2_res, h2_resid, "ph_audio_hash", le_ph_audio_hash);
+#endif
 
 
 
@@ -510,8 +585,17 @@ PHP_FUNCTION(ph_compare_text_hashes)
 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr", &h1_res, &h2_res) == FAILURE) {
 		return;
 	}
+#if PHP_VERSION_ID >= 70000
+	if ((h1 = (ph_text_hash *)zend_fetch_resource2(Z_RES_P(h1_res), "ph_txt_hash", h1_resid, le_ph_txt_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+	if ((h2 = (ph_text_hash *)zend_fetch_resource2(Z_RES_P(h2_res), "ph_txt_hash", h2_resid, le_ph_txt_hash)) == NULL) {
+		RETURN_FALSE;
+	}
+#else
 	ZEND_FETCH_RESOURCE(h1, ph_text_hash *, &h1_res, h1_resid, "ph_txt_hash", le_ph_txt_hash);
 	ZEND_FETCH_RESOURCE(h2, ph_text_hash *, &h2_res, h2_resid, "ph_txt_hash", le_ph_txt_hash);
+#endif
 
 
 
@@ -525,6 +609,14 @@ PHP_FUNCTION(ph_compare_text_hashes)
 		{
 			for(int i = 0; i < count; ++i)
 			{
+#if PHP_VERSION_ID >= 70000
+				zval array;
+				array_init(&array);
+				add_assoc_long(&array, "begin", m[i].first_index);
+				add_assoc_long(&array, "end", m[i].second_index);
+				add_assoc_long(&array, "length", m[i].length);
+				add_next_index_zval(return_value, &array);
+#else
 				zval *array;
 				MAKE_STD_ZVAL(array);
 				array_init(array);
@@ -532,6 +624,7 @@ PHP_FUNCTION(ph_compare_text_hashes)
 				add_assoc_long(array, "end", m[i].second_index);
 				add_assoc_long(array, "length", m[i].length);
 				add_next_index_zval(return_value, array);
+#endif
 			}
 			free(m);
 		}