热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

本文章来给大家整理了大量的php字符串与字符处理函数,这些算法都是高效的,包括有:数组里查找某个元素,线性表的删除,复制字符串,删除字符串,截取字符串等等操作.以下是代码片段:<?php------------...
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
当前位置:首页 > PHP教程 > php函数 > 列表
php字符串字符处理函数详解
发布: 来源:  添加日期:2014-09-13 11:19:01 浏览: 评论:0 

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

以下是代码片段:

  1.  
  2. //--------------------    
  3.  
  4. // 基本数据结构算法   
  5.  
  6. //--------------------    
  7.  
  8. //二分查找(数组里查找某个元素)    
  9.  
  10. function bin_sch($array,  $low$high$k){     
  11.  
  12.     if ( $low <= $high){     
  13.  
  14.         $mid =  intval(($low+$high)/2 );     
  15.  
  16.         if ($array[$mid] ==  $k){     
  17.  
  18.             return $mid;     
  19.  
  20.         }elseif ( $k < $array[$mid]){     
  21.  
  22.             return  bin_sch($array$low,  $mid-1, $k);     
  23.  
  24.         }else{     
  25.  
  26.             return  bin_sch($array$mid+ 1, $high$k);     
  27.  
  28.         }     
  29.  
  30.     }     
  31.  
  32.     return -1;     
  33.  
  34. }     
  35.  
  36. //顺序查找(数组里查找某个元素)    
  37.  
  38. function  seq_sch($array$n,  $k){     
  39.  
  40.     $array[$n] =  $k;     
  41.  
  42.     for($i=0;  $i<$n$i++){     
  43.  
  44.         if$array[$i]==$k){     
  45.  
  46.             break;     
  47.  
  48.         }     
  49.  
  50.     }     
  51.  
  52.     if ($i<$n){     
  53.  
  54.         return  $i;     
  55.  
  56.     }else{     
  57.  
  58.         return -1;     
  59.  
  60.     }     
  61.  
  62. }     
  63.  
  64. //线性表的删除(数组中实现)    
  65.  
  66. function delete_array_element($array , $i)    
  67.  
  68. {    
  69.  
  70.         $len =  count($array);     
  71.  
  72.         for ($j$i$j<$len$j ++){    
  73.  
  74.                 $array[$j] = $array [$j+1];    
  75.  
  76.         }    
  77.  
  78.         array_pop ($array);    
  79.  
  80.         return $array ;    
  81.  
  82. }    
  83.  
  84. //冒泡排序(数组排序)    
  85.  
  86. function bubble_sort( $array)    
  87.  
  88. {    
  89.  
  90.         $count = count$array);    
  91.  
  92.         if ($count <= 0 ) return false;    
  93.  
  94.         for($i=0 ; $i<$count$i ++){    
  95.  
  96.                 for($j=$count-1 ; $j>$i$j--){    
  97.  
  98.                         if ($array[$j] < $array [$j-1]){    
  99.  
  100.                                  $tmp = $array[$j];    
  101.  
  102.                                  $array[$j] = $array$j-1];    
  103.  
  104.                                 $array [$j-1] = $tmp;    
  105.  
  106.                         }    
  107.  
  108.                 }    
  109.  
  110.         }    
  111.  
  112.         return $array;    
  113.  
  114. }    
  115.  
  116. //快速排序(数组排序)    
  117.  
  118. function quick_sort($array ) {    
  119.  
  120.         if (count($array) <= 1) return  $array;    
  121.  
  122.         $key = $array [0];    
  123.  
  124.         $left_arr  = array();    
  125.  
  126.         $right_arr = array();    
  127.  
  128.         for ($i= 1; $i<count($array ); $i++){    
  129.  
  130.                 if ($array$i] <= $key)    
  131.  
  132.                         $left_arr [] = $array[$i];    
  133.  
  134.                 else   
  135.  
  136.                          $right_arr[] = $array[$i ];    
  137.  
  138.         }    
  139.  
  140.         $left_arr = quick_sort($left_arr );    
  141.  
  142.         $right_arr = quick_sort( $right_arr);    
  143.  
  144.         return array_merge($left_arr , array($key), $right_arr);    
  145.  
  146. }    
  147.  
  148.    
  149.  
  150. //------------------------    
  151.  
  152. // PHP内置字符串函数实现    
  153.  
  154. //------------------------    
  155.  
  156. //字符串长度    
  157.  
  158. function strlen ($str)    
  159.  
  160. {    
  161.  
  162.         if ($str == &#39;&#39; ) return 0;    
  163.  
  164.         $count =  0;    
  165.  
  166.         while (1){    
  167.  
  168.                 if ( $str[$count] != NULL){    
  169.  
  170.                          $count++;    
  171.  
  172.                         continue;    
  173.  
  174.                 }else{    
  175.  
  176.                         break;    
  177.  
  178.                 }    
  179.  
  180.         }    
  181.  
  182.         return $count;    
  183.  
  184. }    
  185.  
  186. //截取子串    
  187.  
  188. function substr($str$start,  $length=NULL)    
  189.  
  190. {    
  191.  
  192.         if ($str== &#39;&#39; || $start>strlen($str )) return;    
  193.  
  194.         if (($length!=NULL) && ( $start>0) && ($lengthstrlen($str)-$start)) return;    
  195.  
  196.         if (( $length!=NULL) && ($start< 0) && ($length>strlen($str )+$start)) return;    
  197.  
  198.         if ($length ==  NULL) $length = (strlen($str ) - $start);    
  199.  
  200.              
  201.  
  202.         if ($start <  0){    
  203.  
  204.                 for ($i=(strlen$str)+$start); $i<(strlen ($str)+$start+$length ); $i++) {    
  205.  
  206.                         $substr .=  $str[$i];    
  207.  
  208.                 }    
  209.  
  210.         }    
  211.  
  212.         if ($length  > 0){    
  213.  
  214.                 for ($i$start$i<($start+$length ); $i++) {    
  215.  
  216.                         $substr  .= $str[$i];    
  217.  
  218.                 }    
  219.  
  220.         }    
  221.  
  222.         if ( $length < 0){    
  223.  
  224.                 for ($i =$start$i<(strlen$str)+$length); $i++) {    
  225.  
  226.                         $substr .= $str[$i ];    
  227.  
  228.                 }    
  229.  
  230.         }    
  231.  
  232.         return $substr;    
  233.  
  234. }    
  235.  
  236. //字符串翻转    
  237.  
  238. function strrev($str)    
  239.  
  240. {    
  241.  
  242.         if ($str == &#39;&#39;return 0 ;    
  243.  
  244.         for ($i=(strlen($str)- 1); $i>=0; $i --){    
  245.  
  246.                 $rev_str .= $str[$i ];    
  247.  
  248.         }    
  249.  
  250.         return $rev_str;    
  251.  
  252. }    
  253.  
  254.    
  255.  
  256. //字符串比较    
  257.  
  258. function strcmp($s1,  $s2)    
  259.  
  260. {    
  261.  
  262.         if (strlen($s1) <  strlen($s2)) return -1 ;    
  263.  
  264.         if (strlen($s1) > strlen$s2)) return 1;    
  265.  
  266.         for ($i =0; $i<strlen($s1 ); $i++){    
  267.  
  268.                 if ($s1$i] == $s2[$i]){    
  269.  
  270.                         continue;    
  271.  
  272.                 }else{    
  273.  
  274.                         return false;    
  275.  
  276.                 }    
  277.  
  278.         }    
  279.  
  280.         return  0;    
  281.  
  282. }    
  283.  
  284.    
  285.  
  286. //查找字符串    
  287.  
  288. function  strstr($str$substr)    
  289.  
  290. {    
  291.  
  292.          $m = strlen($str);    
  293.  
  294.         $n = strlen($substr );    
  295.  
  296.         if ($m < $nreturn false ;    
  297.  
  298.         for ($i=0; $i <=($m-$n+1); $i ++){    
  299.  
  300.                 $sub = substr$str$i$n);    
  301.  
  302.                 if ( strcmp($sub$substr) ==  0)  return $i;    
  303.  
  304.         }    
  305.  
  306.         return false ;    
  307.  
  308. }    
  309.  
  310. //字符串替换    
  311.  
  312. function str_replace($substr , $newsubstr$str)    
  313.  
  314. {    
  315.  
  316.          $m = strlen($str);    
  317.  
  318.         $n = strlen($substr );    
  319.  
  320.         $x = strlen($newsubstr );    
  321.  
  322.         if (strchr($str$substr ) == false) return false;    
  323.  
  324.         for ( $i=0; $i<=($m$n+1); $i++){    
  325.  
  326.                  $i = strchr($str,  $substr);    
  327.  
  328.                 $str = str_delete ($str$i$n);    
  329.  
  330.                 $str = str_insert($str,  $i$newstr);    
  331.  
  332.         }    
  333.  
  334.         return $str ;    
  335.  
  336. }    
  337.  
  338.    
  339.  
  340. //--------------------    
  341.  
  342. // 自实现字符串处理函数   
  343.  
  344. //--------------------    
  345.  
  346. //插入一段字符串    
  347.  
  348. function str_insert($str$i , $substr)    
  349.  
  350. {    
  351.  
  352.         for($j=0 ; $j<$i$j ++){    
  353.  
  354.                 $startstr .= $str[$j ];    
  355.  
  356.         }    
  357.  
  358.         for ($j=$i$j <strlen($str); $j ++){    
  359.  
  360.                 $laststr .= $str[$j ];    
  361.  
  362.         }    
  363.  
  364.         $str = ($startstr . $substr  . $laststr);    
  365.  
  366.         return $str ;    
  367.  
  368. }    
  369.  
  370. //删除一段字符串    
  371.  
  372. function str_delete($str , $i$j)    
  373.  
  374. {    
  375.  
  376.         for ( $c=0; $c<$i;  $c++){    
  377.  
  378.                 $startstr .= $str [$c];    
  379.  
  380.         }    
  381.  
  382.         for ($c=( $i+$j); $c<strlen ($str); $c++){    
  383.  
  384.                 $laststr  .= $str[$c];    
  385.  
  386.         }    
  387.  
  388.          $str = ($startstr . $laststr );    
  389.  
  390.         return $str;    
  391.  
  392. }    
  393.  
  394. //复制字符串    
  395.  
  396. function strcpy($s1$s2 )    
  397.  
  398. {    
  399.  
  400.         if (strlen($s1)==NULL || !isset( $s2)) return;    
  401.  
  402.         for ($i=0 ; $i<strlen($s1);  $i++){    
  403.  
  404.                 $s2[] = $s1 [$i];    
  405.  
  406.         }    
  407.  
  408.         return $s2;    
  409.  
  410. }    
  411.  
  412. //连接字符串    
  413.  
  414. function strcat($s1 , $s2)    
  415.  
  416. {    
  417.  
  418.         if (!isset($s1) || !isset( $s2)) return;    
  419.  
  420.         $newstr = $s1 ;    
  421.  
  422.         for($i=0; $i <count($s); $i ++){    
  423.  
  424.                 $newstr .= $st[$i ];    
  425.  
  426.         }    
  427.  
  428.         return $newsstr;    
  429.  
  430. }    
  431.  
  432. //简单编码函数(与php_decode函数对应)    
  433.  
  434. function php_encode($str)    
  435.  
  436. {    
  437.  
  438.         if ( $str==&#39;&#39; && strlen$str)>128) return false;    
  439.  
  440.         for$i=0; $i<strlen ($str); $i++){    
  441.  
  442.                  $c = ord($str[$i ]);    
  443.  
  444.                 if ($c>31 && $c <107) $c += 20 ;    
  445.  
  446.                 if ($c>106 && $c <127) $c -= 75 ;    
  447.  
  448.                 $word = chr($c );    
  449.  
  450.                 $s .= $word;    
  451.  
  452.         }     
  453.  
  454.         return $s;     
  455.  
  456. }    
  457.  
  458. //简单解码函数(与php_encode函数对应)    
  459.  
  460. function php_decode($str)    
  461.  
  462. {    
  463.  
  464.         if ( $str==&#39;&#39; && strlen($str )>128) return false;    
  465.  
  466.         for$i=0; $i<strlen<
推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了《中秋夜作》的翻译及原文赏析,以及诗人当代钱钟书的背景和特点。通过对诗歌的解读,揭示了其中蕴含的情感和意境。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文描述了作者第一次参加比赛的经历和感受。作者是小学六年级时参加比赛的唯一选手,感到有些紧张。在比赛期间,作者与学长学姐一起用餐,在比赛题目中遇到了一些困难,但最终成功解决。作者还尝试了一款游戏,在回程的路上感到晕车。最终,作者以110分的成绩取得了省一会的资格,并坚定了继续学习的决心。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
author-avatar
alilx
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有