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

php字符串函数 str类常见用法示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-07 10:02:02 浏览: 评论:0 

本文实例讲述了php字符串函数 str类常见用法,分享给大家供大家参考,具体如下:

str_split(string, leg);//将一个字符 串转换为数组,参数1:要被转换的字符串,参数2:每 段长度, 返回一个转换后的数组,例:

  1. <?php 
  2. $str = "Hello Friend"
  3. $arr = str_split($str, 3); 
  4. Array 
  5.     [0] => Hel 
  6.     [1] => lo 
  7.     [2] => Fri 
  8.     [3] => end 

ord(string);//返回字符的ASCII码值,返回字符串string第一个字符的ASCII码值

例:$test = 'abc';

  1. $offset = 0; 
  2. while ($offset >= 0) { 
  3.   echo $offset.": ".ordutf8($text$offset)."\n"
  4.  // 97,98,99 

sizeof();//count()的别名

end();//将数组的内部指针指向最后一个单元

  1. <?php 
  2. $fruits = array('apple''banana''cranberry'); 
  3. echo end($fruits); // cranberry 
  4. ?> 

strlen($string);//获取字符串长度

例:

echo strlen('hai');//3

sprintf(format, arg1, arg2, arg++);//把格式化的字符串写入变量中。

format:规定字符串以及如何格式化其中的变量

arg1:规定插到 format 字符串中第一个 % 符号处的参数。

arg2:规定插到 format 字符串中第二个 % 符号处的参数。

例:

  1. <?php 
  2. $num1 = 123456789; 
  3. $num2 = -123456789; 
  4. $char = 50; // ASCII 字符 50 是 2 
  5. // 注释:格式值 "%%" 返回百分号 
  6. echo sprintf("%%b = %b",$num1)."<br>"// 二进制数 
  7. echo sprintf("%%c = %c",$char)."<br>"// ASCII 字符 
  8. echo sprintf("%%d = %d",$num1)."<br>"// 带符号的十进制数 
  9. echo sprintf("%%d = %d",$num2)."<br>"// 带符号的十进制数 
  10. echo sprintf("%%e = %e",$num1)."<br>"// 科学计数法(小写) 
  11. echo sprintf("%%E = %E",$num1)."<br>"// 科学计数法(大学) 
  12. echo sprintf("%%u = %u",$num1)."<br>"// 不带符号的十进制数(正) 
  13. echo sprintf("%%u = %u",$num2)."<br>"// 不带符号的十进制数(负) 
  14. echo sprintf("%%f = %f",$num1)."<br>"// 浮点数(视本地设置) 
  15. echo sprintf("%%F = %F",$num1)."<br>"// 浮点数(不视本地设置) 
  16. echo sprintf("%%g = %g",$num1)."<br>"// 短于 %e 和 %f 
  17. echo sprintf("%%G = %G",$num1)."<br>"// 短于 %E 和 %f 
  18. echo sprintf("%%o = %o",$num1)."<br>"// 八进制数 
  19. echo sprintf("%%s = %s",$num1)."<br>"// 字符串 
  20. echo sprintf("%%x = %x",$num1)."<br>"// 十六进制数(小写) 
  21. echo sprintf("%%X = %X",$num1)."<br>"// 十六进制数(大写) 
  22. echo sprintf("%%+d = %+d",$num1)."<br>"// 符号说明符(正) 
  23. echo sprintf("%%+d = %+d",$num2)."<br>"// 符号说明符(负) 
  24. ?> 

返回结果:

  1. %b = 111010110111100110100010101 
  2. %c = 2 
  3. %d = 123456789 
  4. %d = -123456789 
  5. %e = 1.234568e+8 
  6. %E = 1.234568E+8 
  7. %u = 123456789 
  8. %u = 18446744073586094827 
  9. %f = 123456789.000000 
  10. %F = 123456789.000000 
  11. %g = 1.23457e+8 
  12. %G = 1.23457E+8 
  13. %o = 726746425 
  14. %s = 123456789 
  15. %x = 75bcd15 
  16. %X = 75BCD15 
  17. %+d = +123456789 
  18. %+d = -123456789 

substr_replace(mixed $string , mixed $replacement , mixed $start [, mixed $length ]);// 替换字符串的子串

$string:输入的字符串,

$replacement:用来替换的字符串,

$start:为正数时,从$string的start位置开始,为负数时,从$string的末尾开始,,,,

$lenght:为正数时,表示被替换的子字符串的长度。为负数时,表示待替换的子字符串结尾处距离string末端的字符个数。

  1. <?php 
  2. $var = 'ABCDEFGH:/MNRPQR/'
  3. echo "Original: $var<hr />\n"
  4.    
  5. /* 这两个例子使用 "bob" 替换整个 $var。*/ 
  6. echo substr_replace($var'bob', 0) . "<br />\n"
  7. echo substr_replace($var'bob', 0, strlen($var)) . "<br />\n"
  8.    
  9. /* 将 "bob" 插入到 $var 的开头处。*/ 
  10. echo substr_replace($var'bob', 0, 0) . "<br />\n"
  11.    
  12. /* 下面两个例子使用 "bob" 替换 $var 中的 "MNRPQR"。*/ 
  13. echo substr_replace($var'bob', 10, -1) . "<br />\n"
  14. echo substr_replace($var'bob', -7, -1) . "<br />\n"
  15.    
  16. /* 从 $var 中删除 "MNRPQR"。*/ 
  17. echo substr_replace($var'', 10, -1) . "<br />\n"
  18. ?>  

strpos();//查找字符串首次出现的位置。

  1. 1、 
  2. <?php 
  3. // 忽视位置偏移量之前的字符进行查找 
  4. $newstring = 'abcdef abcdef'
  5. $pos = strpos($newstring'a', 1); // $pos = 7, 不是 0 
  6. ?>  
  7. 2、
  8. <?php 
  9. $mystring = 'abc'
  10. $findme  = 'a'
  11. $pos = strpos($mystring$findme); 
  12.    
  13. // 使用 !== 操作符。使用 != 不能像我们期待的那样工作, 
  14. // 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。 
  15. if ($pos !== false) { 
  16.    echo "The string '$findme' was found in the string '$mystring'"
  17.      echo " and exists at position $pos"
  18. else { 
  19.    echo "The string '$findme' was not found in the string '$mystring'"
  20. ?>  
  21. 3、 
  22. <?php 
  23. $mystring = 'abc'
  24. $findme  = 'a'
  25. $pos = strpos($mystring$findme); 
  26.    
  27. // 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作, 
  28. // 因为 'a' 是第 0 位置上的(第一个)字符。 
  29. if ($pos === false) { 
  30.   echo "The string '$findme' was not found in the string '$mystring'"
  31. else { 
  32.   echo "The string '$findme' was found in the string '$mystring'"
  33.   echo " and exists at position $pos"
  34. ?>  

preg_split($pet, $str);//通过一个正则表达式分隔字符串;

$keywords = preg_split("/[\s,]+/", "hypertext language, programming");

print_r($keywords);

输出:

  1. array(3) {  
  2. [0]=>  string(9) "hypertext"  
  3. [1]=>  string(8) "language"  
  4. [2]=>  string(11) "programming" 

explode($del, $str, $limit);//使用一个字符串分割另一个字符串

$del:分隔符   

$str :字符串   

$limit:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分,如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素,如果 limit 是 0,则会被当做 1。

  1. <?php 
  2. $str = 'one|two|three|four'
  3.    
  4. // 正数的 limit 
  5. print_r(explode('|'$str, 2)); 
  6.    
  7. // 负数的 limit(自 PHP 5.1 起) 
  8. print_r(explode('|'$str, -1)); 
  9. ?>  

以上例程会输出:

  1. Array 
  2.     [0] => one 
  3.     [1] => two|three|four 
  4. Array 
  5.     [0] => one 
  6.     [1] => two 
  7.     [2] => three 

parse_str($str);//将字符串解析成多个变量

  1. $str = "first=value&arr[]=foo+bar&arr[]=baz"
  2. parse_str($str); 
  3. echo $first// value 
  4. echo $arr[0]; // foo bar 
  5. echo $arr[1]; // baz 
  6.    
  7. parse_str($str$output); 
  8. echo $output['first']; // value 
  9. echo $output['arr'][0]; // foo bar 
  10. echo $output['arr'][1]; // baz 
  11. strstr($string,$needle,$before_needle);//查找字符串的首次出现 

string,输入字符串。

needle,如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。

before_needle,若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。

  1. <?php 
  2. $email = 'name@example.com'
  3. $domain = strstr($email'@'); 
  4. echo $domain// 打印 @example.com 
  5.    
  6. $user = strstr($email'@', true); // 从 PHP 5.3.0 起 
  7. echo $user// 打印 name 
  8. ?>  

substr($string,$start,$lenght);// 返回字符串的子串(返回字符串 string 由 start 和 length 参数指定的子字符串)

  1. 1、 
  2.  
  3. <?php 
  4. $rest = substr("abcdef", -1);  // 返回 "f" 
  5. $rest = substr("abcdef", -2);  // 返回 "ef" 
  6. $rest = substr("abcdef", -3, 1); // 返回 "d" 
  7. ?>  
  8. 2、 
  9.  
  10. <?php 
  11. $rest = substr("abcdef", 0, -1); // 返回 "abcde" 
  12. $rest = substr("abcdef", 2, -1); // 返回 "cde" 
  13. $rest = substr("abcdef", 4, -4); // 返回 "" 
  14. $rest = substr("abcdef", -3, -1); // 返回 "de" 
  15. ?>  
  16. 3、 
  17.  
  18. <?php 
  19. echo substr('abcdef', 1);   // bcdef 
  20. echo substr('abcdef', 1, 3); // bcd 
  21. echo substr('abcdef', 0, 4); // abcd 
  22. echo substr('abcdef', 0, 8); // abcdef 
  23. echo substr('abcdef', -1, 1); // f 
  24.    
  25. // 访问字符串中的单个字符 
  26. // 也可以使用中括号 
  27. $string = 'abcdef'
  28. echo $string[0];         // a 
  29. echo $string[3];         // d 
  30. echo $string[strlen($string)-1]; // f 
  31. ?>  

strtr();//转换指定字符

string strtr ( string $str , string $from , string $to )

string strtr ( string $str , array $replace_pairs )

该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符,比如,$from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。

如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。

1、使用两个参数的 strtr() 范例

  1. <?php 
  2. $trans = array("hello" => "hi""hi" => "hello"); 
  3. echo strtr("hi all, I said hello"$trans); 
  4. ?>  

以上例程会输出:

hello all, I said hi

2、

  1. <?php 
  2. echo strtr("baab""ab""01"),"\n"
  3.    
  4. $trans = array("ab" => "01"); 
  5. echo strtr("baab"$trans); 
  6. ?>  

以上例程会输出:

1001

ba01

str_replace(mixed $search , mixed $replace , mixed $subject [, int &$count ]);//子字符串替换。

该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。

  1. <?php 
  2. // 赋值: <body text='black'> 
  3. $bodytag = str_replace("%body%""black""<body text='%body%'>"); 
  4.    
  5. // 赋值: Hll Wrld f PHP 
  6. $vowels = array("a""e""i""o""u""A""E""I""O""U"); 
  7. $onlyconsonants = str_replace($vowels"""Hello World of PHP"); 
  8.    
  9. // 赋值: You should eat pizza, beer, and ice cream every day 
  10. $phrase = "You should eat fruits, vegetables, and fiber every day."
  11. $healthy = array("fruits""vegetables""fiber"); 
  12. $yummy  = array("pizza""beer""ice cream"); 
  13.    
  14. $newphrase = str_replace($healthy$yummy$phrase); 
  15.    
  16. // 赋值: 2 
  17. $str = str_replace("ll""""good golly miss molly!"$count); 
  18. echo $count
  19. ?>  
  20. <?php 
  21. // 替换顺序 
  22. $str   = "Line 1\nLine 2\rLine 3\r\nLine 4\n"
  23. $order  = array("\r\n""\n""\r"); 
  24. $replace = '<br />'
  25.    
  26. // 首先替换 \r\n 字符,因此它们不会被两次转换 
  27. $newstr = str_replace($order$replace$str); 
  28.    
  29. // 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推... 
  30. // 由于从左到右依次替换,最终 E 被 F 替换 
  31. $search = array('A''B''C''D''E'); 
  32. $replace = array('B''C''D''E''F'); 
  33. $subject = 'A'
  34. echo str_replace($search$replace$subject); 
  35.    
  36. // 输出: apearpearle pear 
  37. // 由于上面提到的原因 
  38. $letters = array('a''p'); 
  39. $fruit  = array('apple''pear'); 
  40. $text  = 'a p'
  41. $output = str_replace($letters$fruit$text); 
  42. echo $output
  43. ?>

Tags: php字符串函数 str类

分享到: