Update of /cvsroot/binaryphp/binaryphp/functions/string In directory sc8-pr-cvs1:/tmp/cvs-serv4995/functions/string Added Files: explode.cpp ltrim.cpp rtrim.cpp substr.cpp trim.cpp ucfirst.cpp ucwords.cpp Log Message: finished cleaning up the functions dir --- NEW FILE: explode.cpp --- php_var explode(php_var delim_, php_var str_) { string delim = delim_.container; string str = str_.container; php_var arr = array(); unsigned long int pos = 0; unsigned long int lastPos = 0; string temp; int i = 0; if((pos = str.find(delim)) != string::npos) { temp = str.substr(0, pos); arr[i] = temp; lastPos = pos; pos++; } for(i = 1; (pos = str.find(delim, pos)) != string::npos; ++i) { temp = str.substr(lastPos + delim.size(), pos - lastPos - 1); arr[i] = temp; lastPos = pos; pos++; } temp = str.substr(lastPos + delim.size() > str.size() ? 0 : lastPos + delim.size(), str.size() - 1); arr[i] = temp; return arr; } --- NEW FILE: ltrim.cpp --- php_var ltrim(php_var str, php_var charlist = "") { string chrs = charlist.container + " " + "\t" + "\n" + "\r" + "\0" + "\x0B"; int i = 0; int j = 0; bool changed = true; while(changed == true && i < str.container.length()) { changed = false; for(j = 0; j < chrs.length(); ++j) { if(str.container[i] == chrs[j]) { str.container.erase(i, 1); changed = true; break; } } } return str; } --- NEW FILE: rtrim.cpp --- php_var rtrim(php_var str, php_var charlist = "") { string chrs = charlist.container + " " + "\t" + "\n" + "\r" + "\0" + "\x0B"; int i = 0; int j = 0; bool changed = true; for(i = str.container.length() - 1; changed == true && i >= 0; --i) { changed = false; for(j = 0; j < chrs.length(); ++j) { if(str.container[i] == chrs[j]) { str.container.erase(i, 1); changed = true; break; } } } return str; } --- NEW FILE: substr.cpp --- php_var substr(php_var str, php_var pos, php_var len) { if(len == 0) len = str.container.length() - pos; return (php_var) str.container.substr(pos, len); } php_var substr(php_var str, long pos, long len) { if(len == 0) len = str.container.length() - pos; return (php_var) str.container.substr(pos, len); } --- NEW FILE: trim.cpp --- php_var trim(php_var str, php_var charlist = "") { string chrs = charlist.container + " " + "\t" + "\n" + "\r" + "\0" + "\x0B"; int i = 0; int j = 0; bool changed = true; while(changed == true && i < str.container.length()) { changed = false; for(j = 0; j < chrs.length(); ++j) { if(str.container[i] == chrs[j]) { str.container.erase(i, 1); changed = true; break; } } } changed = true; for(i = str.container.length() - 1; changed == true && i >= 0; --i) { changed = false; for(j = 0; j < chrs.length(); ++j) { if(str.container[i] == chrs[j]) { str.container.erase(i, 1); changed = true; break; } } } return str; } --- NEW FILE: ucfirst.cpp --- php_var ucfirst(php_var str) { for(int i = 0; i < str.container.length(); ++i) { if(str.container[i] != ' ') { str.container[i] = toupper(str.container[i]); break; } } return str; } --- NEW FILE: ucwords.cpp --- php_var ucwords(php_var str) { php_var arr = explode(" ", str); int i; for(i = 0; i < arr.keys.size(); ++i) { arr.data[i].container[0] = toupper(arr.data[i].container[0]); } return implode(" ", arr); } |