0%

字符串介绍,常用字符串输出函数、格式化函数、比较函数

什么是字符串

在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。而php则把字符串作为基本数据类型来处理。通常对字符串的处理涉及字符串的格式化。字符串的分割和连接、字符串的比较、以及字符串的查找、匹配和替换。

常用的字符串输出函数

常规输出字符串

  • echo():输出字符串
  • print():输出一个字符串
    1
    2
    3
    4
    5
    6
    $array = [1,2,3];
    $string = "123";
    //echo $array;
    echo $string;
    //print($array);
    print($string);
    echo()print()都只能输出字符串,而不能输出数组

    输出字符串并退出程序

    die()和exit():输出一个字符串后退出程序
    1
    2
    3
    4
    $string = "123";
    //die($string);
    exit($string);
    echo "我不会运行";
    die()exit()同样都只能输出字符串,而不能输出数组

    格式化输出字符串

    字符串转换格式:
格式 作用
%% 返回百分比符号
%b 二进制数
%c 依照ASCII值的字符
%d 带符号十进制数
%e 可续计数法(如1.5e3)
%u 无符号十进制数
%f或%F 浮点数
%o 八进制数
%s 字符串
%x或%X 十六进制数
  • printf():输出格式化字符串
  • sprintf():把格式化的字符串写入一个变量中

printf()sprintf()都是格式化输出字符串,区别在于sprintf()可以把格式化的字符串写入到一个变量中

1
2
3
printf("我是%s","test");    //输出我是test
$aa = sprintf("我是%s","test");
echo $aa; //输出我是test

常用的字符串格式化函数

去除空格和字符串填充函数

  • ltrim():删去字符串前面的空格
  • rtrim():删去字符串后面的空格
  • trim():删去字符串前后的空格
    1
    2
    3
    4
    5
    6
       $info = " 我前面有个空格";
    $info1 = "我后面有个空格 ";
    $info2 = " 我前后有个空格 ";
    var_dump(ltrim($info)); //去除字符串前面的空格
    var_dump(rtrim($info1)); //去除字符串后面的空格
    var_dump(trim($info2)); //去除字符串前后的空格
  • str_pad():按需求对字符串进行填充
    • STR_PAD_LEFT:字符串左填补
    • STR_PAD_RIGHT:字符串右填补
    • STR_PAD_BOTH:字符串左右两端填补
      1
      2
      3
      4
      5
         $input = "Alien";
      var_dump(str_pad($input, 10));// 输出"Alien     "
      var_dump(str_pad($input, 10, "-=", STR_PAD_LEFT));// 输出 "-=-=-Alien"
      var_dump(str_pad($input, 10, "_", STR_PAD_BOTH));// 输出 "__Alien___"
      var_dump(str_pad($input, 6 , "___"));// 输出"Alien_"

      字符串大小写的转换

  • strtolower():将字符串全部转换为小写字符串
  • strtoupper():将字符串全部转换为大写字符串
  • ucfirst():将字符串第一个字符改大写
  • ucwords():将字符串每个字第一个字母改大写
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $info = "ABCDEFG HIJFLNM";
    // 转换成小写
    $info = strtolower($info);
    var_dump($info);
    // 转换成大写
    var_dump(strtoupper($info));
    // 把首字母变成大写
    var_dump(ucfirst($info));
    // 每个字第一个字母改大写。
    var_dump(ucwords($info));
    image

    和HTML标签相关联的字符串格式化

  • nl2br():将字符串中\n转成HTML换行符<br/>
    1
    2
    $html = "我要换行\n";
    var_dump(nl2br($html));
    image
  • htmlspecialchars():把指定特殊符号转换成实体,如<>
    1
    2
    3
    $html = "<!DOCTYPE html><html><head><title>我是开始</title></head><body></body></html>";
    $shilihuahtml = htmlspecialchars($html);
    var_dump($shilihuahtml);
    image
  • htmlspecialchars_decode():实体转换为html
  • strip_tags():删除html的标签函数
    1
    2
    3
       $html = "<!DOCTYPE html><html><head><title>我是开始</title></head><body></body></html>";
    var_dump(strip_tags($html)); //删除全部html代码,输出string(12) "我是开始"
    var_dump(strip_tags($html,"<title>")); //只保留title标签,标题会显示我是开始
    image

    其他字符串格式化函数

  • strrev():颠倒字符串,将字符串前后颠倒
  • strlen():取得字符串长度
  • number_format():格式货币、数字、时间等
  • md5():md5加密函数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $a = "123456";
    //颠倒字符串
    var_dump(strrev($a));
    // 获取字符串的长度
    var_dump(strlen($a));
    //格式货币、数字、时间等。
    $number = 1234.5678;
    var_dump(number_format($number,2,'.',''));
    //md5加密
    var_dump(md5($a));
    image

字符串比较函数

字符串的比较

  • strcmp():字符串整个比较是否相同
  • strncmp():指定比较长度的字符串比较
  • strcasecmp():不区分大小写的字符串比较
  • strnatcmp():按自然排序法对字符串比较
  • similar_text():字符串的模糊比较,返回相似字符串的个数
    1
    2
    3
    4
    5
    var_dump(strcmp('ABCcc','ABccc'));		//int(-1)
    var_dump(strncmp('ABCcc','ABccc',6)); //int(-1)
    var_dump(strcasecmp('ABCcc','ABccc')); //int(0)
    var_dump(strnatcmp('ABCcc','ABccc')); //int(-1)
    var_dump(similar_text('ABCcc','ABCcc'));//int(5)

    字符串的分割与拼装

  • explode():使用一个字符串分割另一个字符串,返回一个数组
    1
    2
    3
    4
    5
       $pizza = "piece1 piece2 piece3";
    $pieces = explode(" ", $pizza); //用空格分隔pizza变量组成数组赋值给pieces
    echo $pieces[0]; // piece1
    echo $pieces[1]; // piece2
    echo $pieces[2]; // piece3
  • implode():用一组较小的字符串创建一个大字符串
    1
    2
    3
    $array = array('lastname','email','phone');
    $comma_separated = implode(",",$array); //使用,分割array的每个值组成一个字符串
    echo $comma_separated; //输出lastname,email,phone

    字符串的截取、查找、替换

    截取

  • substr():取部分字符串,返回一个新的字符串
  • strstr():截取字符串某个参数第一次出现到结尾的字符串
  • strrchr():截取字符串某个参数最后一次出现到结尾的字符串

查找

  • strpos():寻找字符串某个参数最先出现的位置
  • strrpos():寻找字符串某个参数最后出现的位置

替换

  • str_replace():替换字符串

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
$info = "ABCDEFG HIJFLNM";
//截取
var_dump(substr($info,4,7)); //从字符串第4位开始,截取7位
var_dump(strstr($info,'F')); //截取字符串第一个F开始到结尾的字符串
var_dump(strrchr($info,'F')); //截取字符串最后一个F开始到结尾的字符串

//查找
var_dump(strpos($info,'F')); //寻找字符串F最先出现的位置,返回下标,默认从0开始
var_dump(strrpos($info,'F')); //寻找字符串F最后一次出现的位置,返回下标,默认从0开始

//替换
var_dump($info);
var_dump(str_replace(["A","B"], ["2","4"], $info)); //把字符串A和B分别替换为2和4

image