当前位置:首页 > PHP教程 > php函数 > 列表

php字符串字符处理函数详解

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-13 11:19:01 浏览: 评论:0 

本文章来给大家整理了大量的php字符串与字符处理函数,这些算法都是高效的,包括有:数组里查找某个元素,线性表的删除,复制字符串,删除字符串,截取字符串等等操作.

以下是代码片段:

  1. <?php   
  2.  
  3. //--------------------    
  4.  
  5. // 基本数据结构算法   
  6.  
  7. //--------------------    
  8.  
  9. //二分查找(数组里查找某个元素)    
  10.  
  11. function bin_sch($array,  $low$high$k){     
  12.  
  13.     if ( $low <= $high){     
  14.  
  15.         $mid =  intval(($low+$high)/2 );     
  16.  
  17.         if ($array[$mid] ==  $k){     
  18.  
  19.             return $mid;     
  20.  
  21.         }elseif ( $k < $array[$mid]){     
  22.  
  23.             return  bin_sch($array$low,  $mid-1, $k);     
  24.  
  25.         }else{     
  26.  
  27.             return  bin_sch($array$mid+ 1, $high$k);     
  28.  
  29.         }     
  30.  
  31.     }     
  32.  
  33.     return -1;     
  34.  
  35. }     
  36.  
  37. //顺序查找(数组里查找某个元素)    
  38.  
  39. function  seq_sch($array$n,  $k){     
  40.  
  41.     $array[$n] =  $k;     
  42.  
  43.     for($i=0;  $i<$n$i++){     
  44.  
  45.         if$array[$i]==$k){     
  46.  
  47.             break;     
  48.  
  49.         }     
  50.  
  51.     }     
  52.  
  53.     if ($i<$n){     
  54.  
  55.         return  $i;     
  56.  
  57.     }else{     
  58.  
  59.         return -1;     
  60.  
  61.     }     
  62.  
  63. }     
  64.  
  65. //线性表的删除(数组中实现)    
  66.  
  67. function delete_array_element($array , $i)    
  68.  
  69. {    
  70.  
  71.         $len =  count($array);     
  72.  
  73.         for ($j$i$j<$len$j ++){    
  74.  
  75.                 $array[$j] = $array [$j+1];    
  76.  
  77.         }    
  78.  
  79.         array_pop ($array);    
  80.  
  81.         return $array ;    
  82.  
  83. }    
  84.  
  85. //冒泡排序(数组排序)    
  86.  
  87. function bubble_sort( $array)    
  88.  
  89. {    
  90.  
  91.         $count = count$array);    
  92.  
  93.         if ($count <= 0 ) return false;    
  94.  
  95.         for($i=0 ; $i<$count$i ++){    
  96.  
  97.                 for($j=$count-1 ; $j>$i$j--){    
  98.  
  99.                         if ($array[$j] < $array [$j-1]){    
  100.  
  101.                                  $tmp = $array[$j];    
  102.  
  103.                                  $array[$j] = $array$j-1];    
  104.  
  105.                                 $array [$j-1] = $tmp;    
  106.  
  107.                         }    
  108.  
  109.                 }    
  110.  
  111.         }    
  112.  
  113.         return $array;    
  114.  
  115. }    
  116.  
  117. //快速排序(数组排序)    
  118.  
  119. function quick_sort($array ) {    
  120.  
  121.         if (count($array) <= 1) return  $array;    
  122.  
  123.         $key = $array [0];    
  124.  
  125.         $left_arr  = array();    
  126.  
  127.         $right_arr = array();    
  128.  
  129.         for ($i= 1; $i<count($array ); $i++){    
  130.  
  131.                 if ($array$i] <= $key)    
  132.  
  133.                         $left_arr [] = $array[$i];    
  134.  
  135.                 else   
  136.  
  137.                          $right_arr[] = $array[$i ];    
  138.  
  139.         }    
  140.  
  141.         $left_arr = quick_sort($left_arr );    
  142.  
  143.         $right_arr = quick_sort( $right_arr);    
  144.  
  145.         return array_merge($left_arr , array($key), $right_arr);    
  146.  
  147. }    
  148.  
  149.    
  150.  
  151. //------------------------    
  152.  
  153. // PHP内置字符串函数实现    
  154.  
  155. //------------------------    
  156.  
  157. //字符串长度    
  158.  
  159. function strlen ($str)    
  160.  
  161. {    
  162.  
  163.         if ($str == '' ) return 0;    
  164.  
  165.         $count =  0;    
  166.  
  167.         while (1){    
  168.  
  169.                 if ( $str[$count] != NULL){    
  170.  
  171.                          $count++;    
  172.  
  173.                         continue;    
  174.  
  175.                 }else{    
  176.  
  177.                         break;    
  178.  
  179.                 }    
  180.  
  181.         }    
  182.  
  183.         return $count;    
  184.  
  185. }    
  186.  
  187. //截取子串    
  188.  
  189. function substr($str$start,  $length=NULL)    
  190.  
  191. {    
  192.  
  193.         if ($str== '' || $start>strlen($str )) return;    
  194.  
  195.         if (($length!=NULL) && ( $start>0) && ($lengthstrlen($str)-$start)) return;    
  196.  
  197.         if (( $length!=NULL) && ($start< 0) && ($length>strlen($str )+$start)) return;    
  198.  
  199.         if ($length ==  NULL) $length = (strlen($str ) - $start);    
  200.  
  201.              
  202.  
  203.         if ($start <  0){    
  204.  
  205.                 for ($i=(strlen$str)+$start); $i<(strlen ($str)+$start+$length ); $i++) {    
  206.  
  207.                         $substr .=  $str[$i];    
  208.  
  209.                 }    
  210.  
  211.         }    
  212.  
  213.         if ($length  > 0){    
  214.  
  215.                 for ($i$start$i<($start+$length ); $i++) {    
  216.  
  217.                         $substr  .= $str[$i];    
  218.  
  219.                 }    
  220.  
  221.         }    
  222.  
  223.         if ( $length < 0){    
  224.  
  225.                 for ($i =$start$i<(strlen$str)+$length); $i++) {    
  226.  
  227.                         $substr .= $str[$i ];    
  228.  
  229.                 }    
  230.  
  231.         }    
  232.  
  233.         return $substr;    
  234.  
  235. }    
  236.  
  237. //字符串翻转    
  238.  
  239. function strrev($str)    
  240.  
  241. {    
  242.  
  243.         if ($str == ''return 0 ;    
  244.  
  245.         for ($i=(strlen($str)- 1); $i>=0; $i --){    
  246.  
  247.                 $rev_str .= $str[$i ];    
  248.  
  249.         }    
  250.  
  251.         return $rev_str;    
  252.  
  253. }    
  254.  
  255.    
  256.  
  257. //字符串比较    
  258.  
  259. function strcmp($s1,  $s2)    
  260.  
  261. {    
  262.  
  263.         if (strlen($s1) <  strlen($s2)) return -1 ;    
  264.  
  265.         if (strlen($s1) > strlen$s2)) return 1;    
  266.  
  267.         for ($i =0; $i<strlen($s1 ); $i++){    
  268.  
  269.                 if ($s1$i] == $s2[$i]){    
  270.  
  271.                         continue;    
  272.  
  273.                 }else{    
  274.  
  275.                         return false;    
  276.  
  277.                 }    
  278.  
  279.         }    
  280.  
  281.         return  0;    
  282.  
  283. }    
  284.  
  285.    
  286.  
  287. //查找字符串    
  288.  
  289. function  strstr($str$substr)    
  290.  
  291. {    
  292.  
  293.          $m = strlen($str);    
  294.  
  295.         $n = strlen($substr );    
  296.  
  297.         if ($m < $nreturn false ;    
  298.  
  299.         for ($i=0; $i <=($m-$n+1); $i ++){    
  300.  
  301.                 $sub = substr$str$i$n);    
  302.  
  303.                 if ( strcmp($sub$substr) ==  0)  return $i;    
  304.  
  305.         }    
  306.  
  307.         return false ;    
  308.  
  309. }    
  310.  
  311. //字符串替换    
  312.  
  313. function str_replace($substr , $newsubstr$str)    
  314.  
  315. {    
  316.  
  317.          $m = strlen($str);    
  318.  
  319.         $n = strlen($substr );    
  320.  
  321.         $x = strlen($newsubstr );    
  322.  
  323.         if (strchr($str$substr ) == false) return false;    
  324.  
  325.         for ( $i=0; $i<=($m$n+1); $i++){    
  326.  
  327.                  $i = strchr($str,  $substr);    
  328.  
  329.                 $str = str_delete ($str$i$n);    
  330.  
  331.                 $str = str_insert($str,  $i$newstr);    
  332.  
  333.         }    
  334.  
  335.         return $str ;    
  336.  
  337. }    
  338.  
  339.    
  340.  
  341. //--------------------    
  342.  
  343. // 自实现字符串处理函数   
  344.  
  345. //--------------------    
  346.  
  347. //插入一段字符串    
  348.  
  349. function str_insert($str$i , $substr)    
  350.  
  351. {    
  352.  
  353.         for($j=0 ; $j<$i$j ++){    
  354.  
  355.                 $startstr .= $str[$j ];    
  356.  
  357.         }    
  358.  
  359.         for ($j=$i$j <strlen($str); $j ++){    
  360.  
  361.                 $laststr .= $str[$j ];    
  362.  
  363.         }    
  364.  
  365.         $str = ($startstr . $substr  . $laststr);    
  366.  
  367.         return $str ;    
  368.  
  369. }    
  370.  
  371. //删除一段字符串    
  372.  
  373. function str_delete($str , $i$j)    
  374.  
  375. {    
  376.  
  377.         for ( $c=0; $c<$i;  $c++){    
  378.  
  379.                 $startstr .= $str [$c];    
  380.  
  381.         }    
  382.  
  383.         for ($c=( $i+$j); $c<strlen ($str); $c++){    
  384.  
  385.                 $laststr  .= $str[$c];    
  386.  
  387.         }    
  388.  
  389.          $str = ($startstr . $laststr );    
  390.  
  391.         return $str;    
  392.  
  393. }    
  394.  
  395. //复制字符串    
  396.  
  397. function strcpy($s1$s2 )    
  398.  
  399. {    
  400.  
  401.         if (strlen($s1)==NULL || !isset( $s2)) return;    
  402.  
  403.         for ($i=0 ; $i<strlen($s1);  $i++){    
  404.  
  405.                 $s2[] = $s1 [$i];    
  406.  
  407.         }    
  408.  
  409.         return $s2;    
  410.  
  411. }    
  412.  
  413. //连接字符串    
  414.  
  415. function strcat($s1 , $s2)    
  416.  
  417. {    
  418.  
  419.         if (!isset($s1) || !isset( $s2)) return;    
  420.  
  421.         $newstr = $s1 ;    
  422.  
  423.         for($i=0; $i <count($s); $i ++){    
  424.  
  425.                 $newstr .= $st[$i ];    
  426.  
  427.         }    
  428.  
  429.         return $newsstr;    
  430.  
  431. }    
  432.  
  433. //简单编码函数(与php_decode函数对应)    
  434.  
  435. function php_encode($str)    
  436.  
  437. {    
  438.  
  439.         if ( $str=='' && strlen$str)>128) return false;    
  440.  
  441.         for$i=0; $i<strlen ($str); $i++){    
  442.  
  443.                  $c = ord($str[$i ]);    
  444.  
  445.                 if ($c>31 && $c <107) $c += 20 ;    
  446.  
  447.                 if ($c>106 && $c <127) $c -= 75 ;    
  448.  
  449.                 $word = chr($c );    
  450.  
  451.                 $s .= $word;    
  452.  
  453.         }     
  454.  
  455.         return $s;     
  456.  
  457. }    
  458.  
  459. //简单解码函数(与php_encode函数对应)    
  460.  
  461. function php_decode($str)    
  462.  
  463. {    
  464.  
  465.         if ( $str=='' && strlen($str )>128) return false;    
  466.  
  467.         for$i=0; $i<strlen ($str); $i++){    
  468.  
  469.                 $c  = ord($word);    
  470.  
  471.                 if ( $c>106 && $c<127 ) $c = $c-20;    
  472.  
  473.                 if ($c>31 && $c< 107) $c = $c+75 ;    
  474.  
  475.                 $word = chr$c);    
  476.  
  477.                 $s .= $word ;    
  478.  
  479.         }     
  480.  
  481.         return $s;     
  482.  
  483. }    
  484.  
  485. //简单加密函数(与php_decrypt函数对应)    
  486.  
  487. function php_encrypt($str)    
  488.  
  489. {    
  490.  
  491.          $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';    
  492.  
  493.          $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';    
  494.  
  495.         if ( strlen($str) == 0) return  false;    
  496.  
  497.         for ($i=0;  $i<strlen($str); $i ++){    
  498.  
  499.                 for ($j=0; $j <strlen($encrypt_key); $j ++){    
  500.  
  501.                         if ($str[$i] == $encrypt_key [$j]){    
  502.  
  503.                                 $enstr .=  $decrypt_key[$j];    
  504.  
  505.                                 break;    
  506.  
  507.                         }    
  508.  
  509.                 }    
  510.  
  511.         }    
  512.  
  513.         return $enstr;    
  514.  
  515. }    
  516.  
  517. //简单解密函数(与php_encrypt函数对应)    
  518. //开源代码phpfensi.com 
  519. function php_decrypt($str)    
  520.  
  521. {    
  522.  
  523.          $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';    
  524.  
  525.          $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';    
  526.  
  527.         if ( strlen($str) == 0) return  false;    
  528.  
  529.         for ($i=0;  $i<strlen($str); $i ++){    
  530.  
  531.                 for ($j=0; $j <strlen($decrypt_key); $j ++){    
  532.  
  533.                         if ($str[$i] == $decrypt_key [$j]){    
  534.  
  535.                                 $enstr .=  $encrypt_key[$j];    
  536.  
  537.                                 break;    
  538.  
  539.                         }    
  540.  
  541.                 }    
  542.  
  543.         }    
  544.  
  545.         return $enstr;    
  546.  
  547. }    
  548.  
  549. ?>

php字符串处理函数大全:

addcslashes — 为字符串里面的部分字符添加反斜线转义字符
addslashes — 用指定的方式对字符串里面的字符进行转义
bin2hex — 将二进制数据转换成十六进制表示
chop — rtrim() 的别名函数
chr — 返回一个字符的ASCII码
chunk_split — 按一定的字符长度将字符串分割成小块
convert_cyr_string — 将斯拉夫语字符转换为别的字符
convert_uudecode — 解密一个字符串
convert_uuencode — 加密一个字符串
count_chars — 返回一个字符串里面的字符使用信息
crc32 — 计算一个字符串的crc32多项式
crypt — 单向散列加密函数
echo — 用以显示一些内容
explode — 将一个字符串用分割符转变为一数组形式
fprintf — 按照要求对数据进行返回,并直接写入文档流
get_html_translation_table — 返回可以转换的HTML实体
hebrev — 将Hebrew编码的字符串转换为可视的文本
hebrevc — 将Hebrew编码的字符串转换为可视的文本
html_entity_decode — htmlentities ()函数的反函数,将HTML实体转换为字符
htmlentities — 将字符串中一些字符转换为HTML实体
htmlspecialchars_decode —htmlspecialchars()函数的反函数,将HTML实体转换为字符
htmlspecialchars — 将字符串中一些字符转换为HTML实体
implode — 将数组用特定的分割符转变为字符串
join — 将数组转变为字符串,implode()函数的别名
levenshtein — 计算两个词的差别大小
localeconv — 获取数字相关的格式定义
ltrim — 去除字符串左侧的空白或者指定的字符
md5_file — 将一个文件进行MD5算法加密
md5 — 将一个字符串进行MD5算法加密
metaphone — 判断一个字符串的发音规则
money_format — 按照参数对数字进行格式化的输出
nl_langinfo — 查询语言和本地信息
nl2br — 将字符串中的换行符“n”替换成“<br/>”
number_format — 按照参数对数字进行格式化的输出
ord — 将一个ASCII码转换为一个字符
parse_str — 把一定格式的字符串转变为变量和值
print — 用以输出一个单独的值
printf — 按照要求对数据进行显示
quoted_printable_decode — 将一个字符串加密为一个8位的二进制字符串
quotemeta — 对若干个特定字符进行转义
rtrim — 去除字符串右侧的空白或者指定的字符
setlocale — 设置关于数字,日期等等的本地格式
sha1_file — 将一个文件进行SHA1算法加密
sha1 — 将一个字符串进行SHA1算法加密
similar_text — 比较两个字符串,返回系统认为的相似字符个数
soundex — 判断一个字符串的发音规则
sprintf — 按照要求对数据进行返回,但是不输出
sscanf — 可以对字符串进行格式化
str_ireplace — 像str_replace()函数一样匹配和替换字符串,但是不区分大小写
str_pad — 对字符串进行两侧的补白
str_repeat — 对字符串进行重复组合
str_replace — 匹配和替换字符串
str_rot13 — 将字符串进行ROT13加密处理
str_shuffle — 对一个字符串里面的字符进行随机排序
str_split — 将一个字符串按照字符间距分割为一个数组
str_word_count — 获取字符串里面的英文单词信息
strcasecmp — 对字符串进行大小比较,不区分大小写
strchr — 通过比较返回一个字符串的部分strstr()函数的别名
strcmp — 对字符串进行大小比较
strcoll – 根据本地设置对字符串进行大小比较
strcspn — 返回字符连续非匹配长度的值
strip_tags — 去除一个字符串里面的HTML和PHP代码
stripcslashes — 反转义addcslashes()函数转义处理过的字符串
stripos — 查找并返回首个匹配项的位置,匹配不区分大小写
stripslashes — 反转义addslashes()函数转义处理过的字符串
stristr — 通过比较返回一个字符串的部分,比较时不区分大小写
strlen — 获取一个字符串的编码长度
strnatcasecmp — 使用自然排序法对字符串进行大小比较,不区分大小写
strnatcmp — 使用自然排序法对字符串进行大小比较
strncasecmp — 对字符串的前N个字符进行大小比较,不区分大小写
strncmp — 对字符串的前N个字符进行大小比较
strpbrk — 通过比较返回一个字符串的部分
strpos — 查找并返回首个匹配项的位置
strrchr — 通过从后往前比较返回一个字符串的部分
strrev — 将字符串里面的所有字母反向排列
strripos — 从后往前查找并返回首个匹配项的位置,匹配不区分大小写
strrpos – 从后往前查找并返回首个匹配项的位置
strspn — 匹配并返回字符连续出现长度的值
strstr — 通过比较返回一个字符串的部分
strtok — 用指定的若干个字符来分割字符串
strtolower — 将字符串转变为小写
strtoupper –将字符串转变为大写
strtr — 对字符串比较替换
substr_compare — 对字符串进行截取后的比较
substr_count — 计算字符串中某字符段的出现次数
substr_replace — 对字符串中的部分字符进行替换
substr — 对字符串进行截取
trim — 去除字符串两边的空白或者指定的字符
ucfirst — 将所给字符串的第一个字母转换为大写
ucwords — 将所给字符串的每一个英文单词的第一个字母变成大写
vfprintf — 按照要求对数据进行返回,并直接写入文档流
vprintf — 按照要求对数据进行显示
vsprintf — 按照要求对数据进行返回,但是不输出
wordwrap — 按照一定的字符长度分割字符串

Tags: php字符串函数 php字符处理

分享到: