300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php 字符串函数 教程_php字符串函数 str类常见用法示例

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

时间:2019-03-26 06:22:25

相关推荐

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

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

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

例:

$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();//将数组的内部指针指向最后一个单元

$fruits = array('apple', 'banana', 'cranberry');

echo end($fruits); // cranberry

?>

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

例:

echo strlen('hai');//3

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

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

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

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

例:

$num1 = 123456789;

$num2 = -123456789;

$char = 50; // ASCII 字符 50 是 2

// 注释:格式值 "%%" 返回百分号

echo sprintf("%%b = %b",$num1)."

"; // 二进制数

echo sprintf("%%c = %c",$char)."

"; // ASCII 字符

echo sprintf("%%d = %d",$num1)."

"; // 带符号的十进制数

echo sprintf("%%d = %d",$num2)."

"; // 带符号的十进制数

echo sprintf("%%e = %e",$num1)."

"; // 科学计数法(小写)

echo sprintf("%%E = %E",$num1)."

"; // 科学计数法(大学)

echo sprintf("%%u = %u",$num1)."

"; // 不带符号的十进制数(正)

echo sprintf("%%u = %u",$num2)."

"; // 不带符号的十进制数(负)

echo sprintf("%%f = %f",$num1)."

"; // 浮点数(视本地设置)

echo sprintf("%%F = %F",$num1)."

"; // 浮点数(不视本地设置)

echo sprintf("%%g = %g",$num1)."

"; // 短于 %e 和 %f

echo sprintf("%%G = %G",$num1)."

"; // 短于 %E 和 %f

echo sprintf("%%o = %o",$num1)."

"; // 八进制数

echo sprintf("%%s = %s",$num1)."

"; // 字符串

echo sprintf("%%x = %x",$num1)."

"; // 十六进制数(小写)

echo sprintf("%%X = %X",$num1)."

"; // 十六进制数(大写)

echo sprintf("%%+d = %+d",$num1)."

"; // 符号说明符(正)

echo sprintf("%%+d = %+d",$num2)."

"; // 符号说明符(负)

?>

返回结果:

%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末端的字符个数。

$var = 'ABCDEFGH:/MNRPQR/';

echo "Original: $var

\n";

/* 这两个例子使用 "bob" 替换整个 $var。*/

echo substr_replace($var, 'bob', 0) . "

\n";

echo substr_replace($var, 'bob', 0, strlen($var)) . "

\n";

/* 将 "bob" 插入到 $var 的开头处。*/

echo substr_replace($var, 'bob', 0, 0) . "

\n";

/* 下面两个例子使用 "bob" 替换 $var 中的 "MNRPQR"。*/

echo substr_replace($var, 'bob', 10, -1) . "

\n";

echo substr_replace($var, 'bob', -7, -1) . "

\n";

/* 从 $var 中删除 "MNRPQR"。*/

echo substr_replace($var, '', 10, -1) . "

\n";

?>

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

1、

// 忽视位置偏移量之前的字符进行查找

$newstring = 'abcdef abcdef';

$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0

?>

2、

$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、

$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, $limit);//使用一个字符串分割另一个字符串

$del:分隔符

$str :字符串

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

$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,$before_needle);//查找字符串的首次出现

string,输入字符串。

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

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

$email = 'name@';

$domain = strstr($email, '@');

echo $domain; // 打印 @

$user = strstr($email, '@', true); // 从 PHP 5.3.0 起

echo $user; // 打印 name

?>

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

1、

$rest = substr("abcdef", -1); // 返回 "f"

$rest = substr("abcdef", -2); // 返回 "ef"

$rest = substr("abcdef", -3, 1); // 返回 "d"

?>

2、

$rest = substr("abcdef", 0, -1); // 返回 "abcde"

$rest = substr("abcdef", 2, -1); // 返回 "cde"

$rest = substr("abcdef", 4, -4); // 返回 ""

$rest = substr("abcdef", -3, -1); // 返回 "de"

?>

3、

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() 范例

$trans = array("hello" => "hi", "hi" => "hello");

echo strtr("hi all, I said hello", $trans);

?>

以上例程会输出:

hello all, I said hi

2、

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 替换之后的结果

// 赋值:

$bodytag = str_replace("%body%", "black", "

");

// 赋值: 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;

?>

// 替换顺序

$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";

$order = array("\r\n", "\n", "\r");

$replace = '

';

// 首先替换 \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程序设计有所帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。