字符串输出
echo()
:输出一个或多个字符串print()
:输出一个字符串printf()
:输出格式化字符串
printf()格式化方法 | 说明 |
---|---|
%d | 十进制有符号整数 |
%u | 十进制无符号整数 |
%f | 浮点数 |
%s | 字符串 |
%c | 单个字符 |
%p | 指针的值 |
%e | 指数形式的浮点数 |
%x/%X | 无符号以小/大写十六进制表示的整数 |
%o | 无符号以八进制表示的整数 |
%g | 自动选择合适的表示法 |
字符串去除 trim、ltrim 与 rtrim 函数
PHP 字符串去除
用于去除字符串首尾空白等特殊符号或指定的字符。
相关函数说明
函数 | 语法 | 说明 |
---|---|---|
trim() | string trim(string str[, charlist]) | 去除字符串 首尾 空白等特殊符号或指定字符序列 |
ltrim() | string ltrim(string str[, charlist]) | 去除字符串 首 空白等特殊符号或指定字符序列 |
rtrim() | string rrim(string str[, charlist]) | 去除字符串 尾 空白等特殊符号或指定字符序列 |
chop() | 同rtrim() | 同rtrim() |
$text = " Hello World ";
$trimmed = trim($text);
echo $trimmed; //输出"Hello World"
echo "<br />";
echo trim($trimmed, "Hdl"); //输出"ello Wor"
echo "<br />";
echo trim($text, "Hdl"); //输出"Hello World"
注:从这个例子可以看出,trim()
函数将不会去除非首尾的指定字符 (charlist) 。
将数组元素组合为字符串
implode()
函数用于将数组元素组合为一个字符串,并返回该字符串。
类别 | 说明 |
---|---|
函数 | implode() ,join() 为implode() 的别名函数。 |
语法 | string implode( string glue, array array ) |
说明 | 将数组元素组合为一个字符串,并返回该字符串。 |
参数glue | 连接数组元素的字符 |
参数array | 需要组合为字符串的数组 |
$array = array('姓名', '电话', '邮箱');
$char = implode("-", $array);
$char1 = join("-", $array);
echo $char;//姓名-电话-邮箱
echo $char1;//姓名-电话-邮箱
字符串分割
explode()
:使用一个字符串分割另一个字符串,返回一个数组。str_split()
:将字符串分割到数组中,成功返回一个数组。
explode()
函数
类别 | 说明 |
---|---|
函数 | explode() |
语法 | array explode(string separator, string string [, int limit]) |
说明 | 使用一个字符串分割另一个字符串,返回一个数组。 |
参数separator | 分割标志 |
参数string | 需要分割的字符串 |
参数limit(可选) | 表示返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分,支持负数。 |
<?php
$str = 'one|two|three|four';
print_r(explode('|', $str));
print_r(explode('|', $str, 2));
// 负数的 limit(自 PHP 5.1 起)
print_r(explode('|', $str, -1));
?>
输出结果:
Array
(
[0] => one
[1] => two
[2] => three
[3] => four
)
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
str_split
函数
类别 | 说明 |
---|---|
函数 | str_split() |
语法 | array str_split(string string [, int length]) |
说明 | 将字符串分割为一个数组,成功返回一个数组。 |
参数string | 需要分割的字符串 |
参数length | 可选,表示每个分割单位的长度,不可小于1 |
<?php
$str = 'Hello World';
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>
输出结果:
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => W
[7] => o
[8] => r
[9] => l
[10] => d
)
Array
(
[0] => Hel
[1] => lo
[2] => Wor
[3] => ld
)
字符串截取
从字符串中获取指定字符串。
- substr():从字符串中获取其中的一部分
- strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符
- strchr():同 strstr()
- strrchr():查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
substr()
类别 | 说明 |
---|---|
函数 | substr() |
语法 | array str_split(string string [, int length]) |
说明 | 从字符串中获取其中的一部分,返回一个字符串。 |
参数string | 要处理的字符串 |
参数start | 字符串开始位置,起始位置为 0 ,为负则从字符串结尾的指定位置开始 |
参数length | 可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回 |
注意: 如果 start 是负数且 length 小于等于 start ,则 length 为 0。
echo substr('abcdef', 1); //输出 bcdef
echo substr('abcdef', 1, 2); //输出 bc
echo substr('abcdef', -3, 2); //输出 de
echo substr('abcdef', 1, -1); //输出 bcde
strstr()
类别 | 说明 |
---|---|
函数 | strstr() |
语法 | string strstr ( string string, string needle ) |
说明 | 查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符,如果没找到则返回 FALSE。 |
参数string | 要处理的字符串 |
参数needle | 要查找的字符串,如果是数字,则搜索匹配数字 ASCII 值的字符 |
<?php
$email = 'user@qq.com';
$domain = strstr($email, '@');
echo $domain;// 输出 @qq.com
?>
strrchr()
类别 | 说明 |
---|---|
函数 | strrchr() |
语法 | string strrchr (string string, string needle) |
说明 | 查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符,如果没找到则返回 FALSE。 |
参数string | 要处理的字符串 |
参数needle | 要查找的字符串,如果是数字,则搜索匹配数字 ASCII 值的字符 |
<?php
$email = 'user@qq.com@QWQ';
$domain = strrchr($email,'@');
echo $domain;// 输出 @QWQ
?>
字符串替换
从字符串中替换指定字符串。
substr_replace()
:把字符串的一部分替换为另一个字符串str_replace()
:使用一个字符串替换字符串中的另一些字符
substr_replace()
类别 | 说明 |
---|---|
函数 | substr_replace() |
语法 | mix substr_replace (mixed string, string replacement, int start [, int length]) |
说明 | 把字符串的一部分替换为另一个字符串,返回混合类型。 |
参数string | 要处理的字符串 |
参数replacement | 要插入的字符串 |
参数start | 字符串开始位置,起始位置为 0 ,为负则从字符串结尾的指定位置开始 |
参数length | 可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回 |
<?php
echo substr_replace('abcdef', '###', 1); //输出 a###
echo substr_replace('abcdef', '###', 1, 2); //输出 a###def
echo substr_replace('abcdef', '###', -3, 2); //输出 abc###f
echo substr_replace('abcdef', '###', 1, -2); //输出 a###ef
?>
str_replace()
类别 | 说明 |
---|---|
函数 | str_replace() |
语法 | mixed str_replace(mixed search, mixed replace, mixed string [, int &count]) |
说明 | 使用一个字符串替换字符串中的另一些字符,返回混合类型。 |
参数search | 要查找(被替换)的字符串 |
参数replace | 要替换 search 的字符串 |
参数string | 要处理的字符串 |
参数count | 可选,一个对替换计数的变量 |
<?php
echo str_replace("world","earth","Hello world!").'</br>'; //输出 Hello earth!
//替换多个,且第二个参数为空字符
echo str_replace("o","","Hello world!"); //输出 Hell wrld!
//使用数组
$arr = array("e", "o");
$arr2 = array("x", "y");
echo str_replace($arr, $arr2, "Hello World for you", $i); //输出Hxlly Wyrld fyr yyu
echo $i;// 5
?>
字符串计算
计算字符串的长度或定位字符串出现的位置。
- strlen():取得字符串的长度
- strpos():定位字符串第一次出现的位置
- strrpos():定位字符串最后一次出现的位置
字符串格式化显示
将字符串格式化为适合网页显示的格式。
nl2br()
:将换行符\n
转换成 HTML 换行符<br />
。htmlspecialchars()
:把一些特殊字符转换为 HTML 实体。- htmlspecialchars_decode()`:把一些 HTML 实体转换为特殊字符, htmlspecialchars() 的反函数。
特殊字符与html实体转换表
<?php
echo htmlspecialchars('<a href="test">Test</a>');
// 输出 <a href="test">Test</a>
?>
网页源代码为
<a href="test">Test</a>gt;
字符串存储(转义)
PHP 的字符串向数据库进行写入时,为避免数据库错误,需要对特殊字符进行转义。
- addslashes() 函数用于对特殊字符加上转义字符,返回一个字符串。
- stripslashes() 该函数为 addslashes() 的反函数,返回一个字符串。
<?php
<?php
$str = "it's a apple";
echo $str; // 输出 it's a apple
echo addslashes($str); // 输出 it\'s a apple
$stristr = "it\'s a apple";
echo stripslashes($stristr);// 输出 it's a apple
?>
?>
提示
默认情况下,PHP 指令 magic_quotes_gpc 为 on,系统会对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes() 。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes() ,因为这样会导致双层转义。可以对 get_magic_quotes_gpc() 进行检测以便确定是否需要使用 addslashes() :
<?php
if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST['lastname']);
} else {
$lastname = $_POST['lastname'];
}
echo $lastname;
?>
注:本文乃本人学习笔记,难免有所纰漏,仅供参考。