11、php字符串详解及常用字符串函数

php初级评论46字数 3222阅读10分44秒

11.1. 4种不同形式的字符串

11.1.1.单引号字符串

形式:

$s1 = ‘字符串内容’

特点:
只能使用2个转义符:
\ \(代表一个反斜杠) \’(代表一个单引号)
通常,如果没有其他特殊需求(比如字符串中使用一些转义符,以及一些变量),则推荐使用单引号字符串。!文章源自国强极客生活-https://tagqwl.com/2683.html

$str1 = ‘John\’s  Apple  phone  is  lost.  ’;
$str2 = ‘ mama  say: “don\'t  speak  with  stranger ”  ‘;

11.1.2.双引号字符串

形式:文章源自国强极客生活-https://tagqwl.com/2683.html

$s1 = “字符串内容”

特点:
1,能使用较为丰富的转义符,包括:\ \ \” \n \r \t $等文章源自国强极客生活-https://tagqwl.com/2683.html

\n  :代表“换行符”(就是一个新行)
\r  :代表“回车符”(其实也是一个新行)
\t  :代表“tab符”,
\$  :代表“$”本身,因为双引号字符串中能识别(解析)变量,则如果不想要去解析,就用此转义!
$v1 = 10;
echo  “结果为:$v1”;    //输出内容为: 结果为:10
echo  “结果为:\$v1”;   //输出内容为: 结果为:$v1
2,“$”符号在其中会被识别为是变量的起始符号,并试图读取变量值——即能识别变量;

3,识别其中变量,建议使用大括号括起来,类似这样:文章源自国强极客生活-https://tagqwl.com/2683.html

{$变量名}, {$数组[‘下标’]}

11.1.3.heredoc字符串

形式:文章源自国强极客生活-https://tagqwl.com/2683.html

$s1 = <<<“标识符”
这里写字符内容,可以多行写
标识符;

特点:
1,特点跟双引号字符串一样!
注意:
标识符结束那一行,只能出现标识符及紧挨着的分号,任何其他字符都不可以出现。文章源自国强极客生活-https://tagqwl.com/2683.html

11.1.4.nowdoc字符串

形式:文章源自国强极客生活-https://tagqwl.com/2683.html

$s1 = <<<‘标识符’
这里写字符内容,可以多行写
标识符;

特点:无特点,是最“纯净”的字符串,写什么就是什么文章源自国强极客生活-https://tagqwl.com/2683.html

注意:
标识符结束那一行,只能出现标识符及紧挨着的分号,任何其他字符都不可以出现。
heredoc字符串,和nowdoc字符串,适用于表达(描述)一大段内容的字符串,特别是适合于写html部分的代码(含js,css等)。
如下:文章源自国强极客生活-https://tagqwl.com/2683.html

11.2.转义字符

转义的字符的本质,其实是在一个字符串的语法形式中,如何来表达一些相对特殊的一些字符的问题。
比如:
双引号字符串:文章源自国强极客生活-https://tagqwl.com/2683.html

$s = “这里字符串内容,要是直接出现双引号就会有语法问题。”;

11.3.字符串的长度问题

字符串的长度问题,有两个方面的理解:
1,一个字符串有几个字符(人可见到的字符个数);
2,一个字符串占据多少个字节空间(人不可见);
几个常识:
a,1字节(B)就是8个bit位(最小的存储空间),1KB=1024B,1MB=1024KB,1GB=1024MB。。
b,一个英文字符占据1字节空间,gbk编码中1个汉字占据2个字节,utf8编码1个汉字占3字节。
文章源自国强极客生活-https://tagqwl.com/2683.html

求php字符串的长度,,有两个函数:文章源自国强极客生活-https://tagqwl.com/2683.html

strlen(字符串):

求该字符串的“字节数”,也就是占据的字节空间大小;文章源自国强极客生活-https://tagqwl.com/2683.html

mb_strlen(字符串):

求该字符串的“字符个数”
该模块准确的位置如下:文章源自国强极客生活-https://tagqwl.com/2683.html

11.4.常用字符串函数(重点)

  • 字符串输出:
echo: 输出一个或多个字符(不是函数,是语言结构)
print:输出一个字符串
print_r:输出变量的较为详细的信息
var_dump:输出变量的完整信息
  • 字符串去除与填充:

trim:消除一个字符串两端的空白字符或指定字符(空白字符包括:空格,\n, \r, \t等)文章源自国强极客生活-https://tagqwl.com/2683.html

$str1 = “   ab  cd   “;
$str2 = trim($str1);        //”ab  cd”

ltrim:消除一个字符串左边的空白字符或指定字符
rtrim:消除一个字符串右边的空白字符或指定字符
str_pad:将一个字符串使用指定的字符填充到指定的长度文章源自国强极客生活-https://tagqwl.com/2683.html

  • 字符串连接与分割:

implode:将一个数组的值连接起来组成一个字符串
join:同implode文章源自国强极客生活-https://tagqwl.com/2683.html

$arr1  = [‘ab’,  ‘cd’,  12,  3.5]
$v2 = implode(‘-’, $str1);  //用“-”连接该数组的所有项,结果为:”ab-cd-12-3.5”

explode: 将一个字符串使用指定的字符分割为一个数组文章源自国强极客生活-https://tagqwl.com/2683.html

$v1= ”ab-cd-12-3.5”;
$arr1 = explode(‘-’,  $v1); //结果为:[‘ab’,  ‘cd’,  12,  3.5]
$arr2 = explode(‘cd’, $v1); //结果为:[‘ab-’,  ‘-12-3.5’]

str_split:将一个字符串按指定的长度分割为一个数组文章源自国强极客生活-https://tagqwl.com/2683.html

  • 字符串截取:

substr:获取一个字符串中指定位置开始指定长度的子字符串
strstr:获取一个字符串中某个指定字符首次出现的位置起,到最后结尾处的字符文章源自国强极客生活-https://tagqwl.com/2683.html

    strstr(‘abcd.12.3.txt’, ‘.’);   //结果是:”.12.3.txt”

strrchr:获取一个字符串中某个指定字符最后一次出现的位置起,到最后结尾处的字符

    strrchr(‘abcd.12.3.txt’, ‘.’);  //结果是:”.txt”
  • 字符串替换:

str_replace:将一个字符串中的指定字符,替换为给定的新字符。

$v1 = ”ab-cd-12-3.5”;
$v2 = str_replace(‘-’, ‘|’,  $v1);  //结果是:”ab|cd|12|3.5”
$v3 = str_replace(‘-’, ‘++’,  $v1); //结果是:”ab++cd++12++3.5”

substr_replace:将一个字符串中指定位置开始的指定个数的字符,替换为给定的新字符。

  • 字符串长度与位置:

strlen:获取字符串的字节长度。
strpos:获取一个字符串中某个子字符串首次出现的位置。

    strpos(‘abcd.12.3.txt’, ‘.’);   //结果是:4

strrpos:获取一个字符串中某个子字符串最后一次出现的位置。

strrpos(‘abcd.12.3.txt’, ‘.’);  //结果是:9
strrpos(‘abcd.12.3.txt’, ‘cd’); //结果是:2
$v1 = ‘abcdefg’;
$s1 = $v1[0];   //类似数组的语法,其实是取得一个字符串中某个位置上的字符!结果为’a’
$s2 = $v1[3];   //”d”
  • 字符转换:

strtolower:将一个字符串转换为小写。
strtoupper:将一个字符串转换为大写。
lcfirst:将一个字符串的首字母转换为小写。
ucfirst:将一个字符串的首字母转换为大写。
ucwords:将一个字符串中的所有单词的首字母转换大写。

  • 特殊字符处理:

nl2br:将换行符转换为”
”标签字符
addslashes: 将一个字符串中的以下几个字符使用反斜杠进行转义:\ ‘ “

htmlspecialchars:将html中的特殊字符转换为html实体字符,如下所示:

(&  ‘  “  <  > )分别转换为:((&amp;  &apos;  &quot; &lt;  &gt; )

htmlspecialchars_decode:将html实体字符,转换回原本的字符。

案例:

取出如下若干个文件中的图片文件。
$files = array(‘abc.gif’, ‘123.txt’, ‘dir1/gift.PNG’, ‘file1.JPG’, ‘gif动画制作教程.doc’ );

//取出如下若干个文件中的图片文件。
//假定:图片后缀为:.png,  .jpg, .gif
$files = array("abc.gif", "ab.v2.3.txt",  "dir1/gift.PNG",  "file1.JPG",  "gif动画制作教程.doc");
$len = count($files);   //得到数组长度
for($i = 0; $i < $len; $i++)
{
    $houzhui = strrchr($files[$i], '.');//得到类似".gif", '.txt'
    $houzhui = substr($houzhui, 1);//从位置1开始取到最后
    $houzhui = strtolower($houzhui);
    if($houzhui == "png" || $houzhui == "gif" || $houzhui == "jpg")
    {
        echo "<br>" . $files[$i];
    }
}

weinxin
我的微信
添加我的微信,有任何问题请与我直接联系(备注:国强极客生活)
  • 全部本人精心整理制作,希望大家多多支持。
  • 转载请务必保留本文链接:https://tagqwl.com/2683.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: