程序员人生 网站导航

php substr_replace替换字符串一些实例

栏目:php教程时间:2013-10-28 06:31:30

substr_replace与str_replace有一点像就是直接把字符串替换一部份了,下面小编来给各位同学介绍一下操作方法。

substr_replace() 函数把字符串的一部分替换为另一个字符串。

用法:

substr_replace(string,replacement,start,length)

注意当字符串包含中文时,不经过特殊处理会出现乱码,代码如下:

  1. <?php  
  2. $string1="123456789";    
  3.    
  4. echo substr_replace($string1,'###',0);  
  5. //###  
  6. echo substr_replace($string1,'###',5);  
  7. //12345###    
  8.    
  9. echo substr_replace($string1,'###',0,0);  
  10. //###123456789  
  11.    
  12. echo substr_replace($string1,'###',8,-2);  
  13. //12345678###9  
  14.    
  15. echo substr_replace($string1,'###',-6,-1);  
  16. //123###9  
  17. echo "n";  
  18. echo substr_replace($string1,'###',-1);  
  19. //123###9  
  20. echo "n";  
  21. echo substr_replace($string1,'###',1,-1);  
  22. //1###9  
  23.    
  24. echo substr_replace($string1,'###',1,1);  
  25. //1###3456789  
  26. ?> 

例2代码如下:

  1. <?php 
  2.  $var = 'ABCDEFGH:/MNRPQR/'
  3.  echo "Original: $var<hr />n"
  4.  /* These two examples replace all of $var with 'bob'. */ 
  5.  echo substr_replace($var'bob', 0) . "<br />n"
  6.  echo substr_replace($var'bob', 0, strlen($var)) . "<br />n"
  7.  /* Insert 'bob' right at the beginning of $var. */ 
  8.  echo substr_replace($var'bob', 0, 0) . "<br />n"
  9.  /* These next two replace 'MNRPQR' in $var with 'bob'. */ 
  10.  echo substr_replace($var'bob', 10, -1) . "<br />n"
  11.  echo substr_replace($var'bob', -7, -1) . "<br />n"
  12.  /* Delete 'MNRPQR' from $var. */ 
  13.  echo substr_replace($var'', 10, -1) . "<br />n"
  14. ?> 

将过长的字符串用省略号代替一部分,下面的程序可以将过长的字符串保留首尾,中间用省略号代替,代码如下:

  1. <?php 
  2.  $longString = 'abcdefghijklmnopqrstuvwxyz0123456789z.jpg'
  3.  $separator = '...'
  4.  $separatorlength = strlen($separator) ; 
  5.     // 需要保留的字符串 
  6.  $maxlength = 25 - $separatorlength
  7.     // 从一半的长度开始 
  8.  $start = $maxlength / 2 ; 
  9.     // 计算偏移量 
  10.  $trunc =  strlen($longString) - $maxlength
  11.  echo substr_replace($longString$separator$start$trunc); 
  12.  //prints "abcdefghij...56789z.jpg" 
  13. ?> 
  14. //程序运行结果: 
  15. //abcdefghijk...456789z.jpg 

Program List:将多出的字符用省略号代替,代码如下:

  1. <?php 
  2. function truncate($text,$numb)  
  3.  $text = html_entity_decode($text, ENT_QUOTES); 
  4.  if (strlen($text) > $numb)  
  5.  { 
  6.   $text = substr($text, 0, $numb); 
  7.   $text = substr($text,0,strrpos($text," ")); 
  8.      //This strips the full stop: 
  9.      if ((substr($text, -1)) == ".")  
  10.   { 
  11.          $text = substr($text,0,(strrpos($text,"."))); 
  12.      } 
  13.   $etc = "...";  
  14.   $text = $text.$etc
  15.  }  
  16.  $text = htmlentities($text, ENT_QUOTES);  
  17.  return $text
  18. //Call function 
  19. $text = 'welcome to nowamagic, welcome to nowamagic, welcome to nowamagic'
  20. $result = truncate($text, 35); 
  21. echo $result
  22. ?> 

好了你大概会知道此函数的作用了.

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐