PHP字符串处理

来源:互联网 发布:怎么让4g网络信号增强 编辑:程序博客网 时间:2024/06/11 07:34

字符串输出

  • 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);      //输出 bcdefecho substr('abcdef', 1, 2);   //输出 bcecho substr('abcdef', -3, 2);  //输出 deecho 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 可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回
<?phpecho substr_replace('abcdef', '###', 1);    //输出 a###echo substr_replace('abcdef', '###', 1, 2); //输出 a###defecho substr_replace('abcdef', '###', -3, 2);    //输出 abc###fecho 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 可选,一个对替换计数的变量
<?phpecho 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 yyuecho $i;// 5?>

字符串计算

计算字符串的长度或定位字符串出现的位置。

  • strlen():取得字符串的长度
  • strpos():定位字符串第一次出现的位置
  • strrpos():定位字符串最后一次出现的位置

字符串格式化显示

将字符串格式化为适合网页显示的格式。

  • nl2br():将换行符\n 转换成 HTML 换行符 <br />
  • htmlspecialchars():把一些特殊字符转换为 HTML 实体。
  • htmlspecialchars_decode()`:把一些 HTML 实体转换为特殊字符, htmlspecialchars() 的反函数。

特殊字符与html实体转换表
special_char

<?phpecho 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 appleecho 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() :

<?phpif (!get_magic_quotes_gpc()) {    $lastname = addslashes($_POST['lastname']);} else {    $lastname = $_POST['lastname'];}echo $lastname;?>

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

0 0