php基础入门三(字符串的操作)

##php基础入门三

###字符串

1 字符串定义

 ①单引号

 ②双引号

 ③heredoc语法结构

 eg:语法定义

 单引号定义的字符串:KaTeX parse error: Expected 'EOF', got '&' at position 28: …lo world';<br> &̲emsp;双引号定义的字符串:hello = “hello world”;
 heredoc语法结构定义的字符串:

 $hello = <<<TAG

 hello world

 TAG;

 注意事项:

 PHP中允许双引号中的字符串直接包含变量,会被解析。

 而单引号串中的内容总被认为是普通字符,不回被解析。

 在heredoc语法中“TAG”是自定义的可以随便起。

$str="hello";
echo "str is $str"; //运行结果: str is hello
echo "<br>";
echo 'str is $str'; //运行结果: str is $str 

2 字符串操作

1>字符串连接

在php中连接两个字符串用“.”连接

$str1='hello';
$str2=' php';
$str = $str1.$str2;
echo $str;

2>去掉字符串中空格

 PHP中有三个函数可以去掉字符串中的空格

 ①trim去除一个字符串两端空格。

 ②rtrim是去除一个字符串右部空格。

 ③ltrim是去除一个字符串左部空格。

echo trim("&emsp;空格   ")."<br>";
echo rtrim("   空格   ")."<br>";
echo ltrim("   空格   ")."<br>";//打开浏览器开发者工具就可以看到效果

3>获取字符串长度

php中strlen()获取字符串长度。

$str = "你好吗,hello!";
echo mb_strlen($str,"UTF8");//结果:10

特别注意:

 但是strlen使用的对象是英文字符串,一旦字符串中出现汉字就无法计算字符串的长度,当字符中有汉字时则用mb_strlen()函数获取字符串中中文长度。

4>字符串的截取

 字符串的截取分为英文、中文字符串的截取

 ①英文字符串截取substr()
 语法:substr(字符串变量,开始截取的位置,截取个数)

$str='i like banana';  //截取love这几个字母
echo substr($str, 2, 4);

  ②中文字符串截取mb_substr()

 语法:mb_substr(字符串变量,开始截取的位置,截取个数, 网页编码)

$str='我爱你,中国';   //截取中国两个字
echo mb_substr($str, 4, 2, 'utf8');

5>字符串查找

 查询特定的字符串在大字符串中的位置(有一个字符串$str = ‘I hate php’;,怎么样找到其中的php在哪个位置呢?)。

 语法:strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])

 返回值:找到第一个字符的索引值并且返回

 ①英文字符串查找

$str = 'I hate php';
$pos = strpos($str, 'hate');
echo $pos;//结果显示2

②中文字符串查找

$str="截取中文字符串";
$t1 = mb_strpos($str,'中',0,"utf8");
$t2 = mb_strpos($str,'串',0,"utf8");
echo $s = mb_substr($str,$t1,$t2-$t1+1,"utf8");//中文字符串

6>替换字符串

 替换函数str_replace()

 语法:str_replace(要查找的字符串, 要替换的字符串, 被搜索的字符串, 替换进行计数[可选])

$str = 'I hate PHP';
$replace = str_replace('hate', 'like', $str);
echo $replace;//I like PHP

7>格式化字符串

 sprintf() 函数把格式化的字符串写入变量中。

%s %u %f
匹配字符串 匹配整数 匹配浮点

 语法:sprintf(格式, 要转化的字符串)

 返回值:格式化好的字符串

$number = 2;
$str = "Shanghai";
$txt = sprintf("There are %u million cars in %s.",$number,$str);

$result = sprintf('%06.2f', $str);
echo $result;//结果显示99.90

拓展:%06.2f意义
 % “起始字符”;

 0 是 “填空字元” ,表示如果位置空着就用0来填补;

 6 占位元素(小数点也算一个占位);

     99.90一共5个占位,现在需要6个占位,所以用“填空字元”在最前面99.90填满;

 .2 小数点后面的浮点数的位数;

 =f “转换字符” 结尾。

8>字符串的合并(针对数组合并成字符串)

 语法:implode(分隔符[可选], 数组)

 返回值:把数组元素组合为一个字符串

$arr = array('I', 'hate',"php");
$result = implode(' ', $arr);
print_r($result);//I hate php

9>字符串的分割

 函数说明:explode(分隔符[可选], 字符串)

 返回值:函数返回由字符串组成的数组

$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//array('apple','banana')

10>字符串的转义

 1、语法:addslashes()

 返回值:一个转义后的字符串

 用途:addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

 2、语法:stripslashes()

 返回值:字符串

 用途:函数删除由 addslashes() 函数添加的反斜杠。

 预定义字符是:

 █ 单引号(’)

 █ 双引号(")

 █ 反斜杠(\)

 █ NULL

$str='Shanghai is the "biggest" city in China.';
$str1 = addslashes($str);
echo($str1);//Shanghai is the \"biggest\" city in China.
echo "<br>";   
echo stripslashes($str1);  //Shanghai is the "biggest\" city in China.

 3、语法:htmlspecialchars()

 返回值:返回被转换的字符串。

 用途:函数把预定义的字符转换为 HTML 实体(把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体)。

 4、语法:htmlspecialchars_decode()

 返回值:返回已转换的字符串。

 用途:函数把预定义的 HTML 实体转换为字符。

 预定义的字符是:

 █ & (和号)成为 &

 █ " (双引号)成为 "

 █ ’ (单引号)成为 ’

 █ < (小于)成为 <

 █ > (大于)成为 >

$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);//This is some <b>bold</b> text.
echo htmlspecialchars_decode($str);//This is some **bold** text.

######字符串的遍历 获取每个字符

$str="你好hello999.9";
for($i=0;$i<mb_strlen($str,"utf8");$i++){
    echo mb_substr($str,$i,1,"utf8")."---";
}
发布了42 篇原创文章 · 获赞 56 · 访问量 10万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章