Update of /cvsroot/binaryphp/binaryphp/functions/string In directory sc8-pr-cvs1:/tmp/cvs-serv23098/string Added Files: str_repeat.cpp str_replace.cpp stristr.cpp strlen.cpp strpos.cpp strstr.cpp strtolower.cpp Log Message: Moved files into their proper subdirectories. --- NEW FILE: str_repeat.cpp --- php_var str_repeat(php_var input, php_var multiplier) { char *out; php_var retval; int i=(int)multiplier; if(i == 0) return (php_var)""; out=(char*)malloc(i*strlen(input)+1); memset(out,0,i*strlen(input)+1); for(;i>=1;i--) sprintf(out,"%s%s",out,(const char*)input); retval=out; free(out); return retval; } --- NEW FILE: str_replace.cpp --- /* NO LIMIT SUPPORT */ php_var str_replace(php_var search, php_var replace, php_var subject) { php_var retval=subject; int i; if(search.type == PHP_STRING) { char *tmp1; char *tmp2; char *ptr; tmp1=(char*)malloc(strlen(subject)+1); memset(tmp1,0,strlen(subject)); strcpy(tmp1,subject); while(ptr = strstr(tmp1, (const char *)search)) { *ptr = '\0'; i=strlen(tmp1)+(int)(strlen(replace))+(int)(strlen(search))+1; tmp2=(char*)malloc(i); memset(tmp2,0,i); sprintf(tmp2,"%s%s%s",tmp1,(const char*)replace,(const char*)(ptr+(int)(strlen(search)))); sprintf(tmp1,"%s",tmp2); free(tmp2); } retval=(char*)tmp1; free(tmp1); } else if (search.type == PHP_ARRAY) { for(i = 0;i < search.data.size(); ++i) { retval=str_replace(search.data[i],replace.data[i],retval); } } return retval; } --- NEW FILE: stristr.cpp --- php_var stristr(php_var haystack, php_var needle) { int pos = 0; php_var ret; string temp = (strtolower(haystack)).container; string temp2 = (strtolower(needle)).container; if((pos = temp.find(temp2)) != string::npos) { ret.type = PHP_STRING; ret.container = haystack.container.substr(pos, haystack.container.length() - pos); return ret; } else return((php_var)false); } --- NEW FILE: strlen.cpp --- php_var strlen(php_var str) { return (php_var) str.container.length(); } php_var strlen(string str) { return (php_var) str.length(); } --- NEW FILE: strpos.cpp --- php_var strpos(php_var haystack, php_var needle, php_var pos = 0) { php_var ret = 0; if((ret = haystack.container.find(needle.container, (int)pos)) != string::npos) return ret; else return((php_var)false); } --- NEW FILE: strstr.cpp --- php_var strstr(php_var haystack, php_var needle) { int pos = 0; php_var ret; if((pos = haystack.container.find(needle.container)) != string::npos) { ret.type = PHP_STRING; ret.container = haystack.container.substr(pos, haystack.container.length() - pos); return ret; } else return((php_var)false); } --- NEW FILE: strtolower.cpp --- php_var strtolower(php_var str) { for(int i = 0; i < str.container.length(); i++) str.container[i] = tolower(str.container[i]); return (php_var) str; } |