您的位置:首页 > 编程语言 > PHP开发

PHP字符串操作介绍与使用

2014-08-08 18:40 281 查看
<?php
/*
* 1、字符串定义
* 2、字符串连接
* 3、字符串转义、还原
* 4、字符串操作函数
*/

//定义字符串:由0个或多个字符组成的有限序列
//字符串有3种定义形式:(1)单引号 (2)双引号 (3)定界符
//注意1:单引号串和双引号串是有区别的。双引号字符串中包含的变量会被解析出来替换成相应的值,而单引号
//字符串中包含的变量被当做普通字符处理。当然,对于不含须解析的,两者是一样的。
//注意2:定界符中的字符串支持单引号、双引号,无须转义,并支持字符变量替换
//定界符格式如下:
//<<<str
//   格式化文本
//str;
//注意3:str为用户自定义标识符,前后需要保持相同,而且结束标识符必须从行的第1列开始且其后分号是紧跟着写的
//该行除了str;字符外,其他字符不能有,否则会出错

$str=6;
echo 'str is $str<br>';

echo "str is $str<br>";

echo <<<str
$str 是个吉利的数字!
str;

echo '<p>';
//字符串连接:用连接符“.”将两个或两个以上的字符串连接成一个新的字符串
//字符串连接形式有2种:(1)直接使用连接运算符"." (2)使用连接赋值运算符“.=”

$name='我的博客:';
$url=$name."http://www.myblog.com";
echo $url.'<br>';

$str="我的博客:";
$str.="http://www.myblog.com";
echo $str;

echo '<p>';
//字符串的转义、还原:对目标数据中含的可能误认为控制符等系统专用的字符进行转义和还原
//转义和还原字符串数据方法有2种:(1)手动 (2)自动

//手动:为那些字符前加上转义字符“\”
echo 'select * from book where bookname=\'PHP开发宝典\'';

echo "<p>";
//自动:使用自动转义函数实现字符串的转义,一般用于数据量较大的字符串
//转义函数:string addslashes(string str);
//转义函数还原:string stripslashes(string str);

//限定转义函数:string addcslashes(string str,string charlist),其作用是:在指定的字符charlist前加上“\”进行转义
//限定转移函数还原:string stripcslashes(string str);

$str="select * from book where bookname='PHP开发宝典'";
$a=addslashes($str);
echo $a."<br>";
$b=stripslashes($a);
echo $b."<p>";

$a="我心永恒!";
$b=addcslashes($a,"我心");
echo "转义字符串:".$b;
echo "<br>";
$c=stripcslashes($b);
echo "还原字符串:".$c;

echo '<p>';
//操作字符串的函数

//(1)获取字符串长度:int strlen(string str)
echo strlen("中国好声音!");//汉字占2个字符

echo '<p>';
//(2)截取字符串:从字符串中按照指定位置截取一定长度的字符。
//string substr(string str,int start[,int length])
//注意:str为字符串对象,start为指定开始截取字符串的位置(如果start参数为负数,则从字符串的末尾开始截取)
//length指定截取字符的个数,如果length为负数,则表示截取到倒数第length个字符(不包括倒数第length个字符)

echo substr("www.myblog.com",0);//从第0个开始截取
echo "<br>";
echo substr("www.myblog.com",3,8);//从第3个字符开始截取8个字符
echo "<br>";
echo substr("www.myblog.com",-3,3);//从字符串末尾开始截取3个字符
echo "<br>";
echo substr("www.myblog.com",0,-4);//从第1个字符开始截取,截取到倒数第4个字符为止

echo '<p>';
//(3)比较字符串
//比较字符串的方法有3种如下:

//方法1:按照字节比较:strcmp()函数和strcasecmp()函数。两者区别:前者区分大小写,而后者不区分
//语法1:int strcmp(string str1,string str2)
//语法2:int strcasecmp(string str1,string str2)
//返回值
/*
* str1==str2 返回0
* str1>str2 返回1
* str1<str2 返回-1
*/
$str1="M";
$str2="m";
echo strcmp($str1,$str2);
echo '<br>';
echo strcasecmp($str1,$str2);

//方法2:按照自然排序法比较:比较的是字符串中的数字部分,将字符串中的数字按照大小进行比较
//语法1:int strnatcmp(string str1,string str2)
//语法2:int strnatcasecmp(string str1,string str2)
//注意:自然排序法根据数字大小来决定大小,前提是字符串中前面已经比较的字母字符一致,此种情况下
//才让自然数字大小来决定字符串的大小
echo '<p>';
$str3="ff3.jpg";
$str4="FF20.jpg";
echo strnatcmp($str3,$str4);
echo '<br>';
echo strnatcasecmp($str3,$str4);

echo '<p>';
//方法3:指定从源字符串的位置比较即指定2个字符串参与比较的字符的数量
//语法:int strncmp(string str1,string str2,int len)

$str1="I love you!";
$str2="I love myself!";

echo strncmp($str1,$str2,8);

echo '<p>';
//(4)检索字符串:查找字符串

//函数strstr():用于获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串
//如果成功,则返回的子字符串(包含匹配的字符);反之,返回false
//语法: string strstr(string haystack,string needle)
//其中,haystack用来指定从哪个字符串中进行搜索,needle用来指定搜索对象(如果该参数是一个数值,那么将搜索
//与这个数值的ASCII值相匹配的字符)

echo strstr("PHP开开发实战","开");
echo  '<br>';
echo strstr("aabcded",98);

echo '<p>';
//substr_count()函数:查看指定字符或者单词在字符串中出现的次数
//语法:int substr_count(string haystack,string needle)

$str="我喜欢你,你喜欢我吗?唉···";
echo substr_count($str,"你");

echo '<p>';
//(5)替换字符串

//函数str_ireplace():使用新的子字符串替换原始字符串中被指定要替换的字符串
//语法: minxed str_ireplace(mixed search,mixed replacce,mixed subject[,int &count])
//search参数指定需要查找的字符串,replace参数指定替换的值,subject参数指定查找的范围
//count可选参数:获取执行替换的数量

//函数str_replace:与上述函数区别是区分大小写的
$search="汪伦强";
$replace="w";
$object="汪伦强是一名软件工程师";
echo str_ireplace($search,$replace,$object);
echo '<br>';
echo str_ireplace($search,"<font color='#ff0000'>".$search."</font>",$object);

echo '<p>';
//函数substr_replace():对指定字符串中的部分字符串进行替换
//语法:mixed substr_replace(string str,string repl,int start,[,int length])
//str参数指定要操作的原始字符串,repl参数指定替换后的新字符串
//start参数:指定开始替换字符串开始的位置。正数时,起始位置从字符串开头开始;负数时,
//起始位置从字符串的结尾开始
//length可选参数:指定替换的字符串长度。正数时,起始位置从字符串开头开始;负数时,
//起始位置从字符串的结尾开始

$str="I am Chinese";
$repl="a";
echo substr_replace($str,$repl,9,3);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息