PHP字符串处理

字符串输出

  • 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实体转换表
special_char

<?php
echo htmlspecialchars('<a href="test">Test</a>');
// 输出 <a href="test">Test</a>
?>

网页源代码为

&lt;a href=&quot;test&quot;&gt;Test&lt;/a&gt;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;
?>

注:本文乃本人学习笔记,难免有所纰漏,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值