您的位置:首页 > 其它

二:字符串和正则表达式_字符串处理

2011-01-02 13:05 267 查看
字符串处理

一:获取字符串的长度函数strlen()
说明:
该函数常应用于超长文本的分页显示、网站图形计数器、验证码功能实现
语法:int strlen(string str)参数str为指定的字符串
e.x.:
<?php
if($submit==true){
if(empty($_POST['name'])){ //判断输入的姓名是否为空
echo "<script>alert('请您认真填写!')</script>";
}else
{$strlen = strlen($_POST['name']); //获取姓名的长度
echo $strlen;
}
}
?>

二.字符串的连接和分割:通过其可以将数组按照指定的规则转换成字符串,也可以将字符串按指定的规则进行分割,返回一个数组.分别用implode()和expblode()函数来完成
1.implode()函数语法如下:
string implode(string glue,array pieces)本函数将数组pieces中的元素按照字符串glue进行连接,返回一个新字符串
2.explode()函数语法如下:
array explode(string separator,string str,[limit]) separator为指定的分割符,str为被分割的数组,limit为最多分割limit个元素,若limit为负数则返回除了最后的-limit个元素外的所有元素

三.字符串大小写转换:
1.strtoupper()将指定的字符转换成大写.语法如下:
string strtoupper(string str)
2.ucfirst()将字符串的首字母转换成大定.语法如下:
string ucfirst(string str)
3.ucwords()将字符串中每个单词的首字母转换成大写.语法如下:
string ucwords(string str)
4.strtolower()将字符都转换成小写.语法如下:
string strtolower(string str)

四.字符串与HTML相互转换
1.htmlentities()函数将所有字符转成HTML字符.语法如下:
string htmltities(string string,[int quote_style],[string charset])string为指定要转换的字符串;quote_style有3个参数:(1)ENT_COMPAT,转换双引号忽略单引号,它是默认值(2)ENT_NOQUOTES,忽略双引号和单引号(3)ENT_QUOTES转换双引号和单引号;charset为该函数支持的字符集
e.x.: echo htmlentities($str,ENT_QUOTES,"GB2312"). //将变量$str以BG2312编码输出并忽略其中的双引号和单引号
2.htmlspecialchars()函数将字符串中的某些特殊字符转换成HTML格式

五.去除字符串中的空格
1.ltrim()去除字符串中左边的空格或指定的字符.语法如下:
string ltrim(string str,[string charact_mask])
2rtrim()去除字符串中右边的空格或指定的字符.语法如下:
string rtrim(string str,[string charact_mask])
3.trim()去除字符串中的空格或指定的字符.语法如下:
string trim(string str,[string charact_mask])
e.x trim($str,"/t,/n")去除特写字符

六.确定字符串中字符和单词的数量
substr_count()获取指定字符在字符串中出现的次数.语法如下:
int substr_count(string haystack,string needle) //获取指定字符needle在指定字符串haystack中出现的次数
substr_count()函数可用于判断信息中是否有非法关键字的模块中,还可用于查询模块中等
相关函数还有:count_chars()函数和str_word_count()函数

七.定位字符
1.strpos()函数获取字符串A在字符串B中首次出现的位置.(区分字母大小写)语法如下:
int strpos(string haystack,string needle,[int offset])//haystack指定从哪个字符串中开始检索字符串;needle指定要检索的字符串;offset指定从哪个字符串开始检索
2.strrpos()函数 获取指定字符串A在另一个字符串B中最后一次出现的位置,返回结果为指定字符出现的位置.(区分字母大小写)语法如下:
int strrpos(string haystack,string needle) //haystack指定从哪个字符串中开始检索字符串B;needle指定要检索的字符串A;

八.加入和去除反斜杠
在用PHP编程的过程中,经常会遇到这样的问题,将数据插入到数据库中时可能引起一些问题,出现错误或者乱码等,因为数据库将传入的字符解释成控制符.针对此类问题,PHP语言提供了加入和去除反斜杠技术.主要有addcslashes(),addslashes(),stripcslashes()
(1)addcslashes()对字符串中指定字符进行转义,即在指定字符前加上反斜杠"/".语法如下:
string addcslashes(string str,string charlist)//str为将要被操作的字符串,charlist指定在字符串中哪些字符前加上反斜杠"/",若参数charlist中包含有"/n","/r"等字符,将以C语言风格转换,而其它非字母数字且ASCII码低于32以及高于126的字符均转换成使用八进制表示
e.x echo addcslashes($str,"A...Z") //在指定范围内"A...Z"的字符前加上反斜杠'/'
(2)addslashes()对指定字符串中的字符进行转义,包括:单引号" ' ",双引号" " " ,反斜杠" / ",NULL字符" 0 ".该函数常用在生成SQL语句时,对SQL语句中的部分字符进行转义.语法如下:
string addslashes(string str)
(3)stripcslashes()去掉字符串中的反斜杠" / "语法如下:
string stripcslashes(string str)

九.填充,删除和截取字符串
1.substr()从指定的字符串中按照指定的长度并从指定的位置截取字符串.如果使用一个正数作为子字符串起点来调用这个函数,将得到从起点到字符串结束的这个字符串;如果使用一个负数作为子字符串起点来调用,将得到一个原字符尾部的一个子符串,字符个数等于给定负数的绝对值.语法如下:
string substr(string str,int start,int length) //str指定字符串对象,start开始截取的起始位置若其为负数则从末尾开始截取,length截取字符的个数若其为负数则表示取倒数第length个字符
substr()函数常用于用户登陆验证码的模块中,超长文本的分页显示中,网站图形计数器中
2.str_pad()将指定字符串填充成指定长度的字符串.通过该函数可以将指定的字符串以某个指定的字符填充成指定的长度,并可控制填充的位置,从前,后,或两端同时开始.语法如下:
string str_pad(string input,int pad_length,[string pad_string],[int pad_type]) //input指定被填充的字符串,pad_length是被填充后的长度若是负数或小于原字符串的长度则不填充,pad_type可以是STR_PAD_RIGHT表示从右侧开始填充,STR_PAD_LEFT表示从左侧填充,STR_PAD_BOTH表示从两端开始填充.默认为STR_PAD_RIGHT
e.x echo str_pad($str,12,"@",STR_PAD_LEFT).

十.字符串比较
1,按字节进行字符串的比较
strcmp()和strcoll()都是实现按字节进行了字符串的比较,区别是strcmp()区分字符的大小写,而strcoll()不区分字符大小写.这里只讲strcmp()语法如下:
int strcmp(string str1,string str2) //相等则返回0,str1大于str2则返回大于0,str1小于str2则返回小于0
2,按"自然排序"法进行字符串的比较
自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小进行排序实现函数有strnatcmp(),(区分大小写)语法如下:
int strnatcmp(string str1,string str2) //相等则返回0,str1大于str2则返回大于0,str1小于str2则返回小于0

十一.字符串的格式化fprintf(),printf(),sprintf(),number_format()
1.fprintf()将内存中的数据进行格式化,转换成相应的字符串,并以ASCII代码形式输出到文本文件中.语法如下:
int fprintf(resource handle,string format [,mixed args]) //handle为格式化后要存储的位置;format是转换的格式,以百分号%开始到转换字符结束.返回值为书写的字符串长度;
e.x $str1 = fprintf($fp,'%s',$str)
2.printf()将字符串进行格式化.语法如下:
void printf(string format,[mixed arg1],[mixed ...])
e.x printf("%s",$string);
3.number_format()将数字字符串格式化.语法如下:
stringt number_format(float number,[int num_decimal_places],[string dec_seperator],string thousands_seperator) //该函数可以有一个,两个或是4个参数,但不能是3个参数.若是1个参数number,number格式化后会四舍五入掉小数点后的值,且每一千就会以逗号" , "来隔开;若是2个参数,number格式化后会到小数点后的num_decimal_places位,且每一千就会以逗号" , "来隔开;若是4个参数,number格式化后会到小数点第num_decimal_places位,dec_seperator用来代替小数点" . ",thousands_seperator用来代替每一千隔开的逗号" , ".
e.x
$number = 2205.96;
$number1 = number_format($number); //1个参数
$number2 = number_format($number,2); //2个参数
$number3 = 22002239.760055;
$number4 = number_format($number3,2,'.','.'); //4个参数
echo $number1."<br>".$number2."<br>".$number4;

十二.字符串的查找和替换
1.字符串的查找:一类是区分字母大小写的如strstr()strrchr();一类是不区分大字母小写的用stristr()
(1)strstr()获取字符串A在另一个字符串B中首次出现的位置到后者末尾的字符串.语法如下:
string strstr(string haystack,string needle) //haystack是要被搜索的字符串,needle是搜索的内容
(2)strrchr()获取字符串A在另一个字符串B中最后一次出现的位置到后者末尾的字符串.语法如下:
string strrchr(string haystack,string needle) //haystack是要被搜索的字符串,needle是搜索的内容
(3)stristr()用法同strstr()唯一的区别是它不区分字母大小写

2.字符串的替换:该技术常用于搜索引擎的关键字处理中,如描红功能
主要函数有str_ireplace(),str_replace(),substr_replace()
(1)str_ireplace()将指定的字符串替换为另外一个字符串.不区分字母大小写语法如下
mixed str_ireplace(mixed search,mixed replace,mixed subject [,int &count]) //将所有在参数subject中出现的参数search以参数replace取代,参数&count表示取代的次数
(2)str_replace()同str_ireplace()唯一区别是str_replace()区分字母大小写
(3)substr_replace()对指定字符串中的部分字符串进行替换,语法如下 :
string substr_replace(string str,string repl,int start,[int length]) //str指定要操作的字符串;repl指定替换后的新字符串;start指定替换字符串开始的位置,若是正数起始位置从字符串开头开始,若是负数,起始位置从字符串的结尾开始,若是0起始位置从字符串的第一个字符开始;length可选参数,指定返回的字符串长度.默认值是整个字符串,若是正数起始位置从字符串开头开始,若是负数起始位置从字符串的结尾开始,若是0则表示"插入"而非"替换"
e.x
<?PHP
echo substr_replace("吉林省明日科技","有限公司",14,0)."<br>";
echo substr_replace("用我万分努力,","换您十分满意,换我一份薄利",13)."<br>";
echo substr_replace("用今日的辛勤工作,换明日的百倍回报!","明日",2,-28);
?>
程序运行结果如下:

吉林省明日科技有限公司
用我万分努力,换您十分满意,换我一份薄利
用明日的辛勤工作,换明日的百倍回报!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: