本文实例讲述了php字符串函数 str类常见用法。分享给大家供大家参考,具体如下:
str_split(string, leg);//将一个字符 串转换为数组,参数1:要被转换的字符串,参数2:每 段长度, 返回一个转换后的数组
例:
<?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’;
$offset = 0;
while ($offset = 0) {
echo $offset.": ".ordutf8($text, $offset)."\n";
// 97,98,99
sizeof();//count()的别名
end();//将数组的内部指针指向最后一个单元
<?php
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
?
strlen($string);//获取字符串长度
例:
echo strlen('hai');//3
sprintf(format, arg1, arg2, arg++);//把格式化的字符串写入变量中。
例:
<?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 ]);// 替换字符串的子串
<?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、
<?php
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?
2、
<?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、
<?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);//通过一个正则表达式分隔字符串;
$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,
<?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);//将字符串解析成多个变量
$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,
<?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,
1、
<?php
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?
2、
<?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、
<?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
string strtr ( string str , array replace_pairs )
该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 比如, from[n]中每次的出现都会被替换为 to[n],其中
如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。
1、
使用两个参数的 strtr() 范例
<?php
$trans = array("hello" = "hi", "hi" = "hello");
echo strtr("hi all, I said hello", $trans);
?
以上例程会输出:
hello all, I said hi
2、
<?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 &
该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果
<?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;
?
<?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相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。