php内置字符串方法的实现

 转载自 http://www.phpchina.com/viewnews_11435.html
  1. <? 
  2. //------------------------ 
  3. // PHP内置字符串函数实现 (windlike整理)
  4. //------------------------ 
  5. //字符串长度 
  6. function strlen ($str
  7.         if ($str == '' ) return 0; 
  8.         $count =  0; 
  9.         while (1){ 
  10.                 if ( $str[$count] != NULL){ 
  11.                          $count++; 
  12.                         continue
  13.                 }else
  14.                         break
  15.                 } 
  16.         } 
  17.         return $count
  18. //截取子串 
  19. function substr($str$start,  $length=NULL) 
  20.         if ($str== '' || $start>strlen($str )) return
  21.         if (($length!=NULL) && ( $start>0) && ($lengthstrlen($str)-$start)) return
  22.         if (( $length!=NULL) && ($start< 0) && ($length>strlen($str )+$start)) return
  23.         if ($length ==  NULL) $length = (strlen($str ) - $start); 
  24.          
  25.         if ($start <  0){ 
  26.                 for ($i=(strlen$str)+$start); $i<(strlen ($str)+$start+$length ); $i++) { 
  27.                         $substr .=  $str[$i]; 
  28.                 } 
  29.         } 
  30.         if ($length  > 0){ 
  31.                 for ($i$start$i<($start+$length ); $i++) { 
  32.                         $substr  .= $str[$i]; 
  33.                 } 
  34.         } 
  35.         if ( $length < 0){ 
  36.                 for ($i =$start$i<(strlen$str)+$length); $i++) { 
  37.                         $substr .= $str[$i ]; 
  38.                 } 
  39.         } 
  40.         return $substr
  41. //字符串翻转 
  42. function strrev($str
  43.         if ($str == ''return 0 ; 
  44.         for ($i=(strlen($str)- 1); $i>=0; $i --){ 
  45.                 $rev_str .= $str[$i ]; 
  46.         } 
  47.         return $rev_str
  48. //字符串比较 
  49. function strcmp($s1,  $s2
  50.         if (strlen($s1) <  strlen($s2)) return -1 ; 
  51.         if (strlen($s1) > strlen$s2)) return 1; 
  52.         for ($i =0; $i<strlen($s1 ); $i++){ 
  53.                 if ($s1$i] == $s2[$i]){ 
  54.                         continue
  55.                 }else
  56.                         return false; 
  57.                 } 
  58.         } 
  59.         return  0; 
  60. //查找字符串 
  61. function  strstr($str$substr
  62.          $m = strlen($str); 
  63.         $n = strlen($substr ); 
  64.         if ($m < $nreturn false ; 
  65.         for ($i=0; $i <=($m-$n+1); $i ++){ 
  66.                 $sub = substr$str$i$n); 
  67.                 if ( strcmp($sub$substr) ==  0)  return $i
  68.         } 
  69.         return false ; 
  70. //字符串替换 
  71. function str_replace($substr , $newsubstr$str
  72.          $m = strlen($str); 
  73.         $n = strlen($substr ); 
  74.         $x = strlen($newsubstr ); 
  75.         if (strchr($str$substr ) == false) return false; 
  76.         for ( $i=0; $i<=($m$n+1); $i++){ 
  77.                  $i = strchr($str,  $substr); 
  78.                 $str = str_delete ($str$i$n); 
  79.                 $str = str_insert($str,  $i$newstr); 
  80.         } 
  81.         return $str ; 
  82. ?> 
  83. <?php
  84. //-------------------- 
  85. // 自实现字符串处理函数 (windlike整理)
  86. //-------------------- 
  87. //插入一段字符串 
  88. function str_insert($str$i , $substr
  89.         for($j=0 ; $j<$i$j ++){ 
  90.                 $startstr .= $str[$j ]; 
  91.         } 
  92.         for ($j=$i$j <strlen($str); $j ++){ 
  93.                 $laststr .= $str[$j ]; 
  94.         } 
  95.         $str = ($startstr . $substr  . $laststr); 
  96.         return $str ; 
  97. //删除一段字符串 
  98. function str_delete($str , $i$j
  99.         for ( $c=0; $c<$i;  $c++){ 
  100.                 $startstr .= $str [$c]; 
  101.         } 
  102.         for ($c=( $i+$j); $c<strlen ($str); $c++){ 
  103.                 $laststr  .= $str[$c]; 
  104.         } 
  105.          $str = ($startstr . $laststr ); 
  106.         return $str
  107. //复制字符串 
  108. function strcpy($s1$s2 ) 
  109.         if (strlen($s1)==NULL || !isset( $s2)) return
  110.         for ($i=0 ; $i<strlen($s1);  $i++){ 
  111.                 $s2[] = $s1 [$i]; 
  112.         } 
  113.         return $s2
  114. //连接字符串 
  115. function strcat($s1 , $s2
  116.         if (!isset($s1) || !isset( $s2)) return
  117.         $newstr = $s1 ; 
  118.         for($i=0; $i <count($s); $i ++){ 
  119.                 $newstr .= $st[$i ]; 
  120.         } 
  121.         return $newsstr
  122. //简单编码函数(与php_decode函数对应) 
  123. function php_encode($str
  124.         if ( $str=='' && strlen$str)>128) return false; 
  125.         for$i=0; $i<strlen ($str); $i++){ 
  126.                  $c = ord($str[$i ]); 
  127.                 if ($c>31 && $c <107) $c += 20 ; 
  128.                 if ($c>106 && $c <127) $c -= 75 ; 
  129.                 $word = chr($c ); 
  130.                 $s .= $word
  131.         }  
  132.         return $s;  
  133. //简单解码函数(与php_encode函数对应) 
  134. function php_decode($str
  135.         if ( $str=='' && strlen($str )>128) return false; 
  136.         for$i=0; $i<strlen ($str); $i++){ 
  137.                 $c  = ord($word); 
  138.                 if ( $c>106 && $c<127 ) $c = $c-20; 
  139.                 if ($c>31 && $c< 107) $c = $c+75 ; 
  140.                 $word = chr$c); 
  141.                 $s .= $word ; 
  142.         }  
  143.         return $s;  
  144. //简单加密函数(与php_decrypt函数对应) 
  145. function php_encrypt($str
  146.          $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'
  147.          $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'
  148.         if ( strlen($str) == 0) return  false; 
  149.         for ($i=0;  $i<strlen($str); $i ++){ 
  150.                 for ($j=0; $j <strlen($encrypt_key); $j ++){ 
  151.                         if ($str[$i] == $encrypt_key [$j]){ 
  152.                                 $enstr .=  $decrypt_key[$j]; 
  153.                                 break
  154.                         } 
  155.                 } 
  156.         } 
  157.         return $enstr
  158. //简单解密函数(与php_encrypt函数对应) 
  159. function php_decrypt($str
  160.          $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'
  161.          $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'
  162.         if ( strlen($str) == 0) return  false; 
  163.         for ($i=0;  $i<strlen($str); $i ++){ 
  164.                 for ($j=0; $j <strlen($decrypt_key); $j ++){ 
  165.                         if ($str[$i] == $decrypt_key [$j]){ 
  166.                                 $enstr .=  $encrypt_key[$j]; 
  167.                                 break
  168.                         } 
  169.                 } 
  170.         } 
  171.         return $enstr
  172. ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值