字符串的定义方法
使用单引号或双引号定义字符串
字符串以串为操作对象
用双引号或单引号标识
<?php
$test = "php";
$str="i like $test";
$str1='i like $test';
echo $str;
echo $str1;
?>
使用定界符定义字符串
“<<<”是定界符
用于定义格式化的大文本(不需要转义字符)
可以替换变量
使用方法:
使用时后接一个标识符
格式化文本
同样的标识符结束字符串
格式:
<<
str
其中<<<必须使用
str为自定义的标识符,
用于起始标识符和结束标识符
<?php
$str = "明日科技编程字典";
echo <<<a
<font color = "#FF0099">$str 上市了,详情关注:www.mrbccd.com</font>
a;
?>
<?php
$a= <<<a
惊呆了老铁,<br>
这是什么操作
a;
echo$a;
?>
字符串操作
去除字符串首尾空格和特殊字符
trim()函数去除字符串左右的空格和特殊字符
ltrim()函数去除字符串左边的空格和特殊字符
rtrim()函数去除字符串中右边的空格和特殊字符
trim()函数
去除首尾
格式:
string trim(string str [,string charlist]);
其中:str是要操作的对象
charlist是可选参数
一般列出所有希望过滤的字符
或使用”..”列出一个字符范围
<?php
$str=" :\r\rabcd||:";
echo trim($str);
echo "<br>";
echo trim($str,"\r:");
?>
ltrim()函数
仅去除左边字符
<?php
$str=" :\r\rabcd||:";
echo ltrim($str);
echo "<br>";
echo trim($str,"\r:");
?>
rtrim()函数
仅去除右边字符
<?php
$str=" :\r\rabcd||:";
echo ltrim($str);
echo "<br>";
echo rtrim($str,"\r:");
?>
转义、还原字符串数据
手动转义、还原字符串数据
指定字符串可以用单括号括起来
字符串中有的字符与PHP脚本混淆,可以用”\”
<?php
echo 'select *from tb_book where bookname = \'PHP5从入门到精通\'';
?>
自动转义、还原字符串数据
自动转义使用addslashes()函数
还原使用stripslashes()函数
addslashes()函数
使用反斜线引用字符串
格式:
string addslashes( string str)
其中,str为要转义的字符串
返回值为转义后的字符
stripslashes()函数
反引用一个引用字符串
格式:
string stripslashes(string str);
其中,str为输入字符串
返回值为一个去除转义反斜线后的字符串
“\’”变成“’”
“\”变成“\”
<?php
$str = "book*1='php从入门到精通'";
echo $str."<br>";
$a = addslashes($str);
echo $a."<br>";
$b = stripslashes($a);
echo $b."<br>";
?>
addcslashes()函数
在指定的字符charlist前加反斜线
格式:
string addslashes(string str,string charlist)
其中,str为被操作的字符串
charlist指定在那些字符前加反斜线(定义charlist范围时,明确开始和结束的范围内的字符)
stripcslashes()函数
应用于addslashes()函数转义字符串的str还原
格式:
string stripslashes(string str)
<?php
$a="任远洋";
echo $a."<br>";
$b=addcslashes($a,"任远洋");
echo $b."<br>";
$c=stripcslashes($b);
echo $c."<br>";
?>
获取字符串的长度
使用strlen()函数
获取自定字符串str的长度
格式:
int strlen(string str)
<?php
echo strlen("任远洋是个大SB");
?>
检测字符串的长度
使用strlen()函数对用户提交的密码长度进行检测
<?php
if(strlen($_POST['pwd'])<6)
{
echo"<script>alert('用户密码的长度不得少于6位!请重新输入');history.back();</script>";
}
else
{
echo"用户信息输入格式正确!";
}
?>
截取字符串
截取指定字符串中指定位置的指定的长度的字符
使用substr()函数
格式:
string substr(string str,int start[, int length])
其中:str为操作的对象
start为截取字符串的位置(如果为负数,则从末尾开始截取)
length是可选参数,指定截取字符的个数(如果为负数,表示取到倒数第length个字符)
<?php
echo substr("ren yuan yang is SB",0).'<br>';
echo substr("ren yuan yang is SB",3,16).'<br>';
echo substr("ren yuan yang is SB",-2,2).'<br>';
echo substr("ren yuan yang is SB",0,-2).'<br>';
?>
对超长文本的部分显示
<?php
$text="任远洋是我的儿子,所以他不是大傻逼。如果任远洋不是我儿子,那么他就是大傻逼";
if(strlen($text)>10)
echo substr("$text",0,25)."我的好大儿";
else
echo $text;
?>
比较字符串
strcmp()函数按照字节比较
strnatcmp()函数按照自然排序法进行比较
strncmp()函数指定从源字符串的位置比较
按照字节进行字符串的比较
strcmp()函数
strcasecmp()函数
strcmp()函数格式:
int strcmp(string str1,string str2)
其中,str1和str2是比较的两个字符串
如果str1和str2相等,返回0
str1大于str2,返回值大于0
str1小于str2,返回值小于0
<?php
$str1="10";
$str2="01";
$str3="10";
$str4="11";
echo strcmp($str1,$str3)."<br>";
echo strcmp($str1,$str2)."<br>";
echo strcmp($str1,$str4);
?>
按自然排序法进行字符串的比较
通过strnatcmp()函数实现
将字符串中的字符从左到右进行比较,如果是数字之间的比较,按照自然排序法,
其他情况,根据字符的ASCII码进行比较
格式:
int strnatcmp(string str1,string str2)
如果str1和str2相等,返回0
str1大于str2,返回值大于0
str1小于str2,返回值小于0
<?php
$str1="str2.jpg";
$str2="str10.jpg";
$str3="mrsoft1";
$str4="MRSOFT2";
echo strcmp($str1,$str2);
echo " ";
echo strcmp($str3,$str4);
echo " ";
echo strnatcmp($str1,$str2);
echo " ";
echo strnatcmp($str3,$str4);
?>
结果:1 1 -1 1
指定从源字符串的位置开始比较
strncmp()比较字符串中前n个字符
格式:
int strncmp(string str1,string str2,int len)
其中:str1是参与比较的第一个字符串的对象
str2是参与比较的第二个字符串的对象
len是必要参数,指定比较的字符的数量
<?php
$str1="I like PHP!";
$str2="i am fine!";
echo strncmp($str1,$str2,2);
?>
结果:-1
如果str1和str2相等,返回0
str1大于str2,返回值大于0
str1小于str2,返回值小于0
检索字符串
使用strstr()函数查找指定的关键字
获取一个指定的字符串在另一个字符串中首次出现的位置到后者末尾的子字符串
执行成功,返回剩余字符串
失败,返回false
格式:
string strstr(string haystack,string needle)
其中:haystack为必要参数,指定从哪个字符串中搜索
needle为必要参数,指定搜索的对象(如果是一个数值,则搜索与其相等的ASCII值)
限制图片的上传格式:
<form method="post"action="index.php"enctype="multipart/form-data">
<input type="hidden"name="action"value="upload"/>
<input type="flie"name="u_file"/>
<input type="submit"value="上传"/>
</form>
<?php
if(isset($_POST['action'])&&$_POST['action'] == "upload")//判断提交按钮是否为空
{
$file_path="./uploads\\"; //定义图片在服务器中的储存位置
$picture_name=$_FLIES['U_file']['name'];//获取上传图片的名称
$pictrue_name=strstr($picture_name,".");
if($picture_name!=".jpg")
{
echo"<script>alert('上传图片格式不正确,请重新上传');window.location.href='index.php';</script>";
}
else if($_FILES['u_file']['tmp_name'])
{
move_uploaded_file($_FILES['u_file']['tmp_name'],$file_path.$_FILES['u_file']['name']);
echo"图片上传成功!";
}
else
echo"上传图片失败";
}
?>
使用substr_count()函数检索子串出现的次数
格式:
int substr_count(string haystack,string needle)
其中:haystack是指定的字符串
needle为指定的字符
<?php
$str="任远洋大傻逼";
echo substr_count($str,"任");
?>
替换字符串
通过str_ireplace()函数和substr_replace()函数使指定字符串中的指定字符被替换
str_ireplace()函数
使用新的子字符串替换指定的
格式:
mixed str_ireplace(mixed serach,mixed replace,mixed subject [, int &count])
解释:将subject中出现的search以replace取代,
&count为取代字符串执行的次数
其中:search为必要参数,被替换的值(可使用array来提供多个值)
replace为必要参数,指定替换的值
subject为必要参数,进行替换的字符串或数组
count为可选参数,执行的次数
<?php
$str2="任远洋";
$str1="吴晓辉";
$str="吴晓辉是我的儿子";
echo str_ireplace($str1,$str2,$str);
?>
查询关键字,将其描红(模糊查询)
<?php
$content="任远洋是我的儿子";
$str1="任远洋";
echo str_ireplace($str1,"<font color='#FF0000'>".$str."</font>",$content);
?>
substr_replace()函数
对指定字符串中的部分字符串替换
格式:
mixed substr_replace(mixed string,mixed repl,mixed start,[mixed length])
其中:string为要操作的原始字符串(可以是字符串或数组)
repl为替换后的新字符串
start为替换开始的位置,正数表示从第start位置开始
负数表示从倒数第start位置开始
0表示从第一个字符开始
length为可选参数,指定返回的字符串长度(默认值为整个字符出)
正数表示被替换掉子字符串的长度
负数表示待替换的子字符串结尾处距离字符串末端的字符个数,在那里开始插入
0表示将repl插入string中的start处
<?php
$str="努力躺平";
$str1="工作";
echo substr_replace($str,$str1,4,2)
?>
格式化字符串
使用number_format()函数将数字字符串格式化
格式:
string number_format(float number[,int decimals[,string dec_point[,string thousands_sep]]])
其中:number为要格式化的数字
decimals为要保留的数字
dec_point为指定小数点显示的字符
thousands_sep为指定千位分隔符显示的字符
<?php
$number = 54188.99;
echo number_format($number).'<br>';
echo number_format($number,2).'<br>';
$number2 = 54199.88;
echo number_format($number2,2,'.','.');
?>
分割、合成字符串
分割字符串
通过explode()函数实现
explode()函数按照指定规则对一个字符串进行分割,
返回值为数组
格式:
array explode(string delimiter,string str[,int limit])
其中:delimiter为边界上的分割字符
str为必要参数,指定被分割的字符串
limit为可选参数,正数时,返回的数组中包含limit个元素,最后的数组为str中剩余的元素
负数时,返回除了最后的-limit个元素外的所有元素
0时,返回数组中的元素为1
<?php
$str = "任远洋是我的儿子是傻逼";
$str_arr = explode("是","$str");
print_r($str_arr);
echo $str_arr[0];
echo $str_arr[1];
echo $str_arr[2];
?>
合成字符串
implode()函数可以将数组的内容合成一个新的字符串
格式:
string implode(string glue,array pieces)
其中:glue为字符串的类型,指定分割符
pieces为数组的类型,指定要被合并的数组
<?php
$str="任远洋是我儿子是大傻逼";
$str_arr=explode("是",$str);
$array=implode("是",$str_arr);
echo $array;
?>