~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。
我们接着《想入门PHP就来我这(纯干货)03》继续往下学习,记住要每天都学习哦!
1 字符串
1.1 定义
字符串,顾名思义,就是将字符连接在一起。字符串定义方法一般是使用单引号('')或者双引号("")包含字符。
<?php
$content = "PHP";
$str1 = "双引号:I love $content <br>";
$str2 = '单引号:I love $content <br>';
echo $str1;
echo $str2;
?>
注意:从上述代码可以看出,单引号和双引号定义字符串在PHP中的处理是不相同的,双引号中的内容可以被解释并且被替换,而单引号中的内容则被作为普通的字符进行处理。
1.2 定界符
定界符(<<<)是PHP4.0开始支持的。定界符用于定义格式化的大文本,格式化是指文本中的格式将被保留,所以文本中不需要使用转义字符。在使用时后接一个标识符,然后是字符串,最后是同样的标识符结束字符串。格式如下:
<?php
$str = <<< START
内容
START
?>
注意:其中开始和结尾的START要保持相同,用户可以自定义,你不写START也可以,不过要保持前后两个标识符都一样。
小小案例,带你飘一下:
<?php
$content = "PHP";
$str1 = <<<START
I <br>love $content
再次输出一次 <br>$content
START;
echo $str1;
?>
2.字符串操作
字符串操作在PHP编程中占有重要的地位,几乎所有的输入与输出都会用到字符串。尤其是在PHP项目开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理,如获取字符串长度、截取字符串、替换字符串等。接下来我们来学习几个字符串的操作函数:
2.1 去除字符串首尾和特殊字符
2.1.1 trim()函数
用于去除字符串首尾处的空白字符(或者其他字符),语法如下:
string trim(string $str [,string $charlist])
//str 操纵的字符串
//charlist 一般要列出所希望过滤的字符,也可以使用"..",列出一个字符范围。如果不设置该参数,则所有可选字符都将被删除。如果不指定charlist参数,trim()函数将去除下表所有的字符。
字符 | 说明 |
---|---|
\0 | 空值NULL |
\t | tab,制表位 |
\n | 换行 |
\x0B | 垂直制表位 |
\r | 回车 |
" " | 空格 |
注意: 除了以上默认的过滤字符列表外,也可以在charlist参数中提供要过滤的特殊字符。
<?php
$content = ' PHP ';
$str1 = "content文字内容是".$content;
echo $str1;
$content = trim($content);
echo "<br>";
echo "trim函数处理过后的content文字内容是".$content;
?>
2.1.2 ltrim()函数和rtrim()函数
ltrim()函数:去除字符串左边的空格或者指定字符串;rtrim()去除字符串右边的空格或者指定字符串,这两个和trim()函数参数一样。
<?php
$content = ':@_@:@_@---PHP----:@_@:@_@';
$str1 = "content文字内容是".$content;
echo $str1;
$content1 = ltrim($content,":@_@");
$content2 = rtrim($content,":@_@");
echo "<br><br>";
echo "ltrim函数处理过后的content文字内容是".$content1;
echo "<br><br>";
echo "rtrim函数处理过后的content文字内容是".$content2;
?>
2.2 获取字符串长度
2.2.1 strlen()函数
获取指定字符串的长度,中文每个字符会被转换成3个英文字符的长度,官方解释:中文字符占3个字节,英文每个字符占1个字节。
2.2.2 mb_strlen()函数
正确处理中文字符串长度问题,strlen()函数的拓展函数。
<?php
$content = '我爱PHP编成';
echo "中文每个字符会被转换成3个英文字符的长度:".strlen($content);
echo "<br>";
echo "包含中文字符的字符串真实长度:".mb_strlen($content);
?>
从mb_strlen()的语法可以看出,其参数是可以指定编码类型的,默认编码是PHP内置的编码,我们可以指定为UTF-8。
mixed mb_strlen(string $str, string $encoding= mb_internal_encoding())
小小案例,带你飘一下
判定注册的用户是否为3-18位:
<?php
//定义函数检查用户名是否满足条件
function checkUserName($username){
$userName_len = mb_strlen($username, 'UTF-8');
if($userName_len <3 or $userName_len >18){
$message = "你输入的用户名 '".$username."' 不满足注册条件。长度应该定义为3-18的长度";
}else {
$message = "'".$username."' 满足注册条件,可以注册!";
}
return $message;
}
$userName1 = '路T';
$userName2 = '路老师';
$result1 = checkUserName($userName1);
$result2 = checkUserName($userName2);
echo $result1;
echo "<br><br>";
echo $result2;
?>
2.3 截取字符串函数
2.3.1 substr()函数和mb_substr()函数
string substr(string $str, int $start [, int $length]);语法
案例:
<?php
$str = "She is a well-read girl!";
echo substr($str,3); //从第4个字符位置开始截取
echo "<br>";
echo substr($str,-8,4);//从倒数第8位置截取4个字符
?>
2.4 检索字符串
2.4.1 strstr()函数
检索一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。
<?php
$email = "luteacher@163.com";
echo strstr($email,'@'); //检索@符号并获取包含@后面的所有内容
echo "<br>";
echo strstr($email,'@',true);//设置true,检索@包含前面的内容
?>
2.4.2 strpos()函数
检索字符串首次出现的位置,返回首次出现的位置数字。
<?php
$email = "luteacher@163.com";
echo strpos($email,'@'); //检索@字符首次出现的位置
?>
2.5 替换字符串
2.5.1 str_replace()函数
可以使用新的子串替换原始字符串中被指定要替换的字符串。
<?php
$email = "luteacher@163.com";
$str = "****";
//将$email中echa替换为****字符,替换次数$count为1次
echo str_replace('each',$str,$email,$count);
echo "<br>";
echo "替换发生次数".$count."个";
?>
2.5.2 substr_replace()函数
对指定字符串中的部分字符串进行替换。
<?php
$email = "luteacher@163.com";
$str = "****";
//将$email中第3位开始数4个字符替换为****字符
echo substr_replace($email,$str,2,4);
?>
2.6 分割、合成字符串
2.6.1 explode() 分割字符串函数
按照指定的规则对一个字符串进行分割,返回值为数组。
<?php
$content = "A B C D E F G";
$array = explode(' ', $content);
echo "字母数组内容为:<br>";
for($i=0;$i<7;$i++) {
echo $array[$i]."--------------<br>";
}
?>
2.6.2 implode() 合成字符串函数
将数组内容组合成一个新的字符串。
<?php
$content = "A B C D E F G";
$array = explode(' ', $content);
echo "字母数组内容为:<br>";
for($i=0;$i<7;$i++) {
echo $array[$i]."--------------<br>";
}
$hechengStr = implode("#",$array);
echo "合成结果:<br>".$hechengStr;
?>