Skip to content

Instantly share code, notes, and snippets.

@ekinhbayar
Last active August 17, 2016 09:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ekinhbayar/33569f51f08471f39b52ea9ed62e143a to your computer and use it in GitHub Desktop.
Save ekinhbayar/33569f51f08471f39b52ea9ed62e143a to your computer and use it in GitHub Desktop.
stupid xor swap try
PHP_FUNCTION(strrev)
{
zend_string *str;
char *e, *p;
zend_string *n;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) {
return;
}
n = zend_string_alloc(ZSTR_LEN(str), 0);
for (p = ZSTR_VAL(n), e = ZSTR_VAL(str) + ZSTR_LEN(str) - 1; e > p; ++p, --e) {
*p ^= *e;
*e ^= *p;
*p ^= *e;
}
RETVAL_NEW_STR(n);
}
/* {{{ proto string strrev(string str)
Reverse a string
PHP_FUNCTION(strrev)
{
zend_string *str;
char *e, *p;
zend_string *n;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) {
return;
}
n = zend_string_alloc(ZSTR_LEN(str), 0);
p = ZSTR_VAL(n);
e = ZSTR_VAL(str) + ZSTR_LEN(str);
while (--e >= ZSTR_VAL(str)) {
*p++ = *e;
}
*p = '\0';
RETVAL_NEW_STR(n);
}
/* }}} */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment