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

吾爱主题 阅读:125 2021-10-14 15:26:00 评论:0

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

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

例:

?
1 2 3 <?php $str = "Hello Friend" ; $arr = str_split ( $str , 3);

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

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

例:$test = 'abc';

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

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

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

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

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

例:

?
1 echo strlen ( 'hai' ); //3

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

  • format:规定字符串以及如何格式化其中的变量
  • arg1:规定插到 format 字符串中第一个 % 符号处的参数。
  • arg2:规定插到 format 字符串中第二个 % 符号处的参数。

例:

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

返回结果:

%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789

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

  • $string:输入的字符串,
  • $replacement:用来替换的字符串,
  • $start:为正数时,从$string的start位置开始,为负数时,从$string的末尾开始,,,,
  • $lenght:为正数时,表示被替换的子字符串的长度。为负数时,表示待替换的子字符串结尾处距离string末端的字符个数。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php $var = 'ABCDEFGH:/MNRPQR/' ; echo "Original: $var<hr />\n" ;   /* 这两个例子使用 "bob" 替换整个 $var。*/ echo substr_replace( $var , 'bob' , 0) . "<br />\n" ; echo substr_replace( $var , 'bob' , 0, strlen ( $var )) . "<br />\n" ;   /* 将 "bob" 插入到 $var 的开头处。*/ echo substr_replace( $var , 'bob' , 0, 0) . "<br />\n" ;   /* 下面两个例子使用 "bob" 替换 $var 中的 "MNRPQR"。*/ echo substr_replace( $var , 'bob' , 10, -1) . "<br />\n" ; echo substr_replace( $var , 'bob' , -7, -1) . "<br />\n" ;   /* 从 $var 中删除 "MNRPQR"。*/ echo substr_replace( $var , '' , 10, -1) . "<br />\n" ; ?>

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

1、

?
1 2 3 4 5 <?php // 忽视位置偏移量之前的字符进行查找 $newstring = 'abcdef abcdef' ; $pos = strpos ( $newstring , 'a' , 1); // $pos = 7, 不是 0 ?>

2、

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $mystring = 'abc' ; $findme  = 'a' ; $pos = strpos ( $mystring , $findme );   // 使用 !== 操作符。使用 != 不能像我们期待的那样工作, // 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。 if ( $pos !== false) {     echo "The string '$findme' was found in the string '$mystring'" ;       echo " and exists at position $pos" ; } else {     echo "The string '$findme' was not found in the string '$mystring'" ; } ?>

3、

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $mystring = 'abc' ; $findme  = 'a' ; $pos = strpos ( $mystring , $findme );   // 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作, // 因为 'a' 是第 0 位置上的(第一个)字符。 if ( $pos === false) {    echo "The string '$findme' was not found in the string '$mystring'" ; } else {    echo "The string '$findme' was found in the string '$mystring'" ;    echo " and exists at position $pos" ; } ?>

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

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

输出:

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

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

  • $del:分隔符   
  • $str :字符串   
  • $limit:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素,如果 limit 是 0,则会被当做 1。
?
1 2 3 4 5 6 7 8 9 <?php $str = 'one|two|three|four' ;   // 正数的 limit print_r( explode ( '|' , $str , 2));   // 负数的 limit(自 PHP 5.1 起) print_r( explode ( '|' , $str , -1)); ?>

以上例程会输出:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

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

?
1 2 3 4 5 6 7 8 9 10 $str = "first=value&arr[]=foo+bar&arr[]=baz" ; parse_str ( $str ); echo $first ; // value echo $arr [0]; // foo bar echo $arr [1]; // baz   parse_str ( $str , $output ); echo $output [ 'first' ]; // value echo $output [ 'arr' ][0]; // foo bar echo $output [ 'arr' ][1]; // baz

strstr($string,$needle,$before_needle);//查找字符串的首次出现

  • string,输入字符串。
  • needle,如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。
  • before_needle,若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
?
1 2 3 4 5 6 7 8 <?php $email = 'name@example.com' ; $domain = strstr ( $email , '@' ); echo $domain ; // 打印 @example.com   $user = strstr ( $email , '@' , true); // 从 PHP 5.3.0 起 echo $user ; // 打印 name ?>

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

1、

?
1 2 3 4 5 <?php $rest = substr ( "abcdef" , -1);  // 返回 "f" $rest = substr ( "abcdef" , -2);  // 返回 "ef" $rest = substr ( "abcdef" , -3, 1); // 返回 "d" ?>

2、

?
1 2 3 4 5 6 <?php $rest = substr ( "abcdef" , 0, -1); // 返回 "abcde" $rest = substr ( "abcdef" , 2, -1); // 返回 "cde" $rest = substr ( "abcdef" , 4, -4); // 返回 "" $rest = substr ( "abcdef" , -3, -1); // 返回 "de" ?>

3、

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php echo substr ( 'abcdef' , 1);   // bcdef echo substr ( 'abcdef' , 1, 3); // bcd echo substr ( 'abcdef' , 0, 4); // abcd echo substr ( 'abcdef' , 0, 8); // abcdef echo substr ( 'abcdef' , -1, 1); // f   // 访问字符串中的单个字符 // 也可以使用中括号 $string = 'abcdef' ; echo $string [0];         // a echo $string [3];         // d echo $string [ strlen ( $string )-1]; // f ?>

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 2 3 4 <?php $trans = array ( "hello" => "hi" , "hi" => "hello" ); echo strtr ( "hi all, I said hello" , $trans ); ?>

以上例程会输出:

hello all, I said hi

2、

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

以上例程会输出:

1001
ba01

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

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

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

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/qq_42176520/article/details/80828918

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容