{
char *haystack, *char_list;
int haystack_len, char_list_len;
- char *p;
+ char *haystack_ptr, *cl_ptr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &haystack, &haystack_len, &char_list, &char_list_len) == FAILURE) {
RETURN_FALSE;
RETURN_FALSE;
}
- if ((p = strpbrk(haystack, char_list))) {
- RETURN_STRINGL(p, (haystack + haystack_len - p), 1);
- } else {
- RETURN_FALSE;
+ for (haystack_ptr = haystack; haystack_ptr < (haystack + haystack_len); ++haystack_ptr) {
+ for (cl_ptr = char_list; cl_ptr < (char_list + char_list_len); ++cl_ptr) {
+ if (*cl_ptr == *haystack_ptr) {
+ RETURN_STRINGL(haystack_ptr, (haystack + haystack_len - haystack_ptr), 1);
+ }
+ }
}
+
+ RETURN_FALSE;
}
/* }}} */