以下是代码片段: <? //------------------------ // PHP内置字符串函数实现 (windlike整理) //------------------------ //字符串长度 function strlen (?$str) { if (?$str == '' ) return 0; ?$count = 0; while (1){ if ( ?$str[?$count] != NULL){ ?$count++; continue; }else{ break; } } return ?$count; } //截取子串 function substr(?$str, ?$start, ?$length=NULL) { if (?$str== '' || ?$start>strlen(?$str )) return; if ((?$length!=NULL) && ( ?$start>0) && (?$length> strlen(?$str)-?$start)) return; if (( ?$length!=NULL) && (?$start< 0) && (?$length>strlen(?$str )+?$start)) return; if (?$length == NULL) ?$length = (strlen(?$str ) - ?$start); if (?$start < 0){ for (?$i=(strlen( ?$str)+?$start); ?$i<(strlen (?$str)+?$start+?$length ); ?$i++) { ?$substr .= ?$str[?$i]; } } if (?$length > 0){ for (?$i= ?$start; ?$i<(?$start+?$length ); ?$i++) { ?$substr .= ?$str[?$i]; } } if ( ?$length < 0){ for (?$i =?$start; ?$i<(strlen( ?$str)+?$length); ?$i++) { ?$substr .= ?$str[?$i ]; } } return ?$substr; } //字符串翻转 function strrev(?$str) { if (?$str == '') return 0 ; for (?$i=(strlen(?$str)- 1); ?$i>=0; ?$i --){ ?$rev_str .= ?$str[?$i ]; } return ?$rev_str; } //字符串比较 function strcmp(?$s1, ?$s2) { if (strlen(?$s1) < strlen(?$s2)) return -1 ; if (strlen(?$s1) > strlen( ?$s2)) return 1; for (?$i =0; ?$i<strlen(?$s1 ); ?$i++){ if (?$s1[ ?$i] == ?$s2[?$i]){ continue; }else{ return false; } } return 0; } //查找字符串 function strstr(?$str, ?$substr) { ?$m = strlen(?$str); ?$n = strlen(?$substr ); if (?$m < ?$n) return false ; for (?$i=0; ?$i <=(?$m-?$n+1); ?$i ++){ ?$sub = substr( ?$str, ?$i, ?$n); if ( strcmp(?$sub, ?$substr) == 0) return ?$i; } return false ; } //字符串替换 function str_replace(?$substr , ?$newsubstr, ?$str) { ?$m = strlen(?$str); ?$n = strlen(?$substr ); ?$x = strlen(?$newsubstr ); if (strchr(?$str, ?$substr ) == false) return false; for ( ?$i=0; ?$i<=(?$m- ?$n+1); ?$i++){ ?$i = strchr(?$str, ?$substr); ?$str = str_delete (?$str, ?$i, ?$n); ?$str = str_insert(?$str, ?$i, ?$newstr); } return ?$str ; } ?> <?php //-------------------- // 自实现字符串处理函数 (windlike整理) //-------------------- //插入一段字符串 function str_insert(?$str, ?$i , ?$substr) { for(?$j=0 ; ?$j<?$i; ?$j ++){ ?$startstr .= ?$str[?$j ]; } for (?$j=?$i; ?$j <strlen(?$str); ?$j ++){ ?$laststr .= ?$str[?$j ]; } ?$str = (?$startstr . ?$substr . ?$laststr); return ?$str ; } //删除一段字符串 function str_delete(?$str , ?$i, ?$j) { for ( ?$c=0; ?$c<?$i; ?$c++){ ?$startstr .= ?$str [?$c]; } for (?$c=( ?$i+?$j); ?$c<strlen (?$str); ?$c++){ ?$laststr .= ?$str[?$c]; } ?$str = (?$startstr . ?$laststr ); return ?$str; } //复制字符串 function strcpy(?$s1, ?$s2 ) { if (strlen(?$s1)==NULL || !isset( ?$s2)) return; for (?$i=0 ; ?$i<strlen(?$s1); ?$i++){ ?$s2[] = ?$s1 [?$i]; } return ?$s2; } //连接字符串 function strcat(?$s1 , ?$s2) { if (!isset(?$s1) || !isset( ?$s2)) return; ?$newstr = ?$s1 ; for(?$i=0; ?$i <count(?$s); ?$i ++){ ?$newstr .= ?$st[?$i ]; } return ?$newsstr; } //简单编码函数(与php_decode函数对应) function php_encode(?$str) { if ( ?$str=='' && strlen( ?$str)>128) return false; for( ?$i=0; ?$i<strlen (?$str); ?$i++){ ?$c = ord(?$str[?$i ]); if (?$c>31 && ?$c <107) ?$c += 20 ; if (?$c>106 && ?$c <127) ?$c -= 75 ; ?$word = chr(?$c ); ?$s .= ?$word; } return ?$s; } //简单解码函数(与php_encode函数对应) function php_decode(?$str) { if ( ?$str=='' && strlen(?$str )>128) return false; for( ?$i=0; ?$i<strlen (?$str); ?$i++){ ?$c = ord(?$word); if ( ?$c>106 && ?$c<127 ) ?$c = ?$c-20; if (?$c>31 && ?$c< 107) ?$c = ?$c+75 ; ?$word = chr( ?$c); ?$s .= ?$word ; } return ?$s; } //简单加密函数(与php_decrypt函数对应) function php_encrypt(?$str) { ?$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'; ?$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; if ( strlen(?$str) == 0) return false; for (?$i=0; ?$i<strlen(?$str); ?$i ++){ for (?$j=0; ?$j <strlen(?$encrypt_key); ?$j ++){ if (?$str[?$i] == ?$encrypt_key [?$j]){ ?$enstr .= ?$decrypt_key[?$j]; break; } } } return ?$enstr; } //简单解密函数(与php_encrypt函数对应) function php_decrypt(?$str) { ?$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'; ?$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; if ( strlen(?$str) == 0) return false; for (?$i=0; ?$i<strlen(?$str); ?$i ++){ for (?$j=0; ?$j <strlen(?$decrypt_key); ?$j ++){ if (?$str[?$i] == ?$decrypt_key [?$j]){ ?$enstr .= ?$encrypt_key[?$j]; break; } } } return ?$enstr; } ?> | |
评论