1.单引号和双引号的区别
<?php
$test = "PHP";
$str1 = "I Like $test";
$str2 = 'I Like $test';
echo $str1;// 输出双引号的字符串
echo "<br>";
echo $str2;
?>
双引号的内容是经过PHP的语法分析器解析过的,任何变量在双引号中都会被转换为她的值进行输出。
2.字符串的连接符
“.”字符串连接符,可以把两个或两个以上的字符串连接成一个字符串。
<?php
$name ="编程";
$my = "我的";
echo $my.$name;
?>
3.去除字符串首尾空格和特殊字符
1.trim()函数:用于去除字符串首尾空格和特殊字符,并返回去掉空格和特殊字符后的字符串。
string trim(string str [,string charlist]);
2.ltrim()函数:用于去除字符串左边的空格和特殊字符。
string ltrim(string str [,string charlist]);
3.rtrim()函数:用于去除字符串右边的空格和字符串。
string rtrim(string str [,string charlist]);
trim()函数的参数charlist的可选值
可选值
\0 null,空值
\t tab,制表符
\n 换行符
\x0B 垂直制表符
\r 回车符
" " 空格
<?php
$str = "\r\r(:@_@ xxxxxxxxx @_@:) ";
echo trim($str);
echo "<br>";
echo trim($str,"\r\r(: :)");
?>
4.转义,还原字符串数据
1手动转义,还原字符串数据
字符串可以用单引号('),双引号(""),界定符(<<<)3种方法定义。
\ -> 转义 \' -> 转义为普通的单引号。
2自动转义,还原字符串数据
自动转义,还原字符串数据可以应用PHP提供的addcslashes()函数和stripslashes()函数实现。
addslashes()函数:用来为字符串str加入反斜线"\";
string addslashes(string str);
stripslashes()函数:将使用addslashes()函数转义后的字符串str返回原样。
string stripslashes(string str);
<?php
$str = "select * from tb_book where bookname = 'php5从入门到精通'";
echo $str."<br>";
$a = addslashes($str);
echo $a."<br>";
$b = stripcslashes($a);
echo $b;
?>
string addcslashes(string str,string charlist);
参数str为将要被操作的字符:参数charlist指定在字符串的哪些字符前加上反斜线"\".
5.获取字符串的长度
获取字符串的长度使用的是strlen()函数。
int strlen(string str);
<?php
echo strlen("编程:jeff xiao");
?>
汉字占两个字符,数字,英文,小数点,下划线和空格占一个字符。
<?php
if (strlen($_POST['pwd'] < 6){
echo "<script>alert('用户密码的长度不得少于6位!请重新输入');history.back();</script>";
}else{
echo "用户信息输入合法!";
})
?>
6.截取字符串
substr()函数
string substr(string str, int start [, int length]);
str 指定字符串对象
start 指定开始截取字符串的位置,如果参数start为负数,则从字符串的末尾开始截取。
length 可选参数,指定截取字符的个数,如果length为负数,则表示取到倒数第length个字符。
<?php
echo substr("she is a well-read girl",0);
echo "<br>";
echo substr("she is a well-read girl",4,14);
echo "<br>";
echo substr("she is a well-read girl",-4,4);
echo "<br>";
echo substr("she is a well-read girl",0,-4);
?>
使用substr()函数在截取中文字符串时,如果截取的字符串个数是奇数,会出现乱码。中文字符由两个字节组成。
7.比较字符串
strcmp()函数和strcasecmp()函数按照字节进行比较
strnatcmp()函数按照自然排序进行比较。
按字节进行字符串比较。
strcmp()函数区分字符的大小写,而strcasecmp()函数不区分字符的大小写。
int strcmp(string str1,string str2);相等等于0,str1>str2 返回值大于0,str1<str2 返回值小于0.
按自然排序进行字符串的比较
int strnatcmp(string str1,string str2);区分大小写。
strnatcasecmp()不区分大小写。
int strcmp(string str1,string st2,int len);
比较字符串中的前n个字符。
len 必要参数,指定每个字符串参与比较字符的数量。
8.检索字符串
1.使用strstr()函数查找指定的关键字
获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回获取的子字符串(存在相匹配的字符),如果失败则返回false。
string strstr(string haystack,string needle);
string haystack 指定从哪个字符串中进行搜索。
string needle指定搜索的对象。
本函数区分字母的大小写。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>限制大小的文件上传</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>
<body>
<center>
<label>请选择要上传的图片(图片格式为.jpg):</label>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload" />
<input type="file" name="u_file"/>
<input type="submit" value="上传" />
</form>
<?php
if($_POST[action] == "upload"){ //判断提交按钮是否为空
$file_path = "./uploads\\"; //定义图片在服务器中的存储位置
$picture_name=$_FILES[u_file][name]; //获取上传图片的名称
$picture_name=strstr($picture_name , "."); //通过strstr()函数截取上传图片的后缀
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 "上传图片失败";
}
?>
</center>
</body>
</html>
strchr()函数正好相反,该函数从字符串后序的位置开始检索子串。
使用substr_count()函数检索子串出现的次数。
获取指定字符在字符串中出现的次数。
int substr_count(string haystack,string needle);
9.替换字符串
str_ireplace()函数和substr_repalce()函数
1.str_ireplace()函数:使用新的字符串()替换原始字符春中被指定要替换的字符串。
mixed str_ireplace(mixed search,mixed replace,mixed subject [, int &count]);
在参数subject中参数search以参数replace取代,参数count表示要执行替换的次数
参数说明
search 指定需要查找的字符串
replace 指定替换的值
subject 指定查找的范围
count 获取执行替换的次数
本函数不区分大小写。
2.substr_replace()函数
指定字符串中的部分字符串进行替换
string substr_replace(string str,string repl,int start[,int length]);
str 指定要操作的原始字符串
repl 替换后的新字符串
start 指定替换字符串开始的位置,正数表示起始位置从字符串开头开始负数标书起始位置从字符串的结尾开始,0表示起始位置字符串的第一个字符。
length 指定字符串长度。默认为整个字符串。正数表示起始位置从字符串开头开始,负数表示起始位置从字符串的结尾开始,0表示表示插入而非替换。
如果参数start设置为负数,而参数length参数小于或等于start数值,那么length的值自动设置为0.
10.格式化字符串
数字字符串的格式化最为常用。
string number_format(float number [, int num_decimal_places][stringd dec_seperator, string thousands_separator]);
number_format()函数可以有一个,两个或是四个参数,但不能是三个参数。
11.分割字符串
字符串的分割是通过explode()函数实现的,
array explode(string separator, string str [,int limit]);
separator 必要参数,指定的分割的标识符,如果separator为空字符串(" "),explode()将返回false。如果separator所包含的值在str中找不到,那么explode()函数将返回包含str单个元素的数组。
str 必要参数,指定将要被进行分割的字符串
limit 如果设置了limit参数,则返回的数组包含最多limit个元素,而最后的元素将包含str的剩余部分,如果limit参数是负数,则返回除了最后的limit个元素的所有元
12.合成字符串
implode()函数可以将数组的内容组合成一个新字符串。
string implode(string glue,array pleces);
参数glue是字符串类型,指定分隔符,参数pieces是数组类型,指定要被合并的数组。
应用implode()函数将数组中的内容以@分隔符进行连接,从而组合成一个新的字符串。