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

php 字符串操作函数详解

2010-05-24 10:48 330 查看
字符串的操作在PHP编程中占有重要的地位,几乎所有PHP脚本的输入和输出都用到字符串。尤其在PHP项目开发过程中,为了实现某项功能,京城需要对某些字符串进行特殊处理,如获取字符串的长度、截取字符串、替换字符串等。所以这也是我们今天课程的主要内容,希望学员可以认真学习,勤加练习。

8.3.1 去除字符串首位空格和特殊字符

1.  trim()函数: trim()函数用于去除字符串左右两边的空格及/n,/r,/t等,语法:
[b]String trim(string str[,string charlist]);[/b]
    2. ltrim()函数:此函数用于去除字符串左边的空格或者指定字符串,用法与trim()一样,这里不再多做介绍。相对应的,还有一个rtrim()函数,用来去除字符串右边的空格或指定字符串。

8.3.2 转义、还原字符串数据

1. 手动转义、还原字符串数据
转义符:/
使用方法:将此转义符放在要显示的特殊符号之前即可,如要在字符串中显示,就需要用转义符/’,这样,紧跟在/后面的第一个字符就变得没有意义活有特殊意义,如下实例:

<?php
    echo ‘select * from tb_book where bookname = /’PHP初级教材/’’;
?>

输出结果为:select * from tb_book where bookname = ‘PHP初级教材’
1. 自动转义、还原字符串数据
    自动转义、还原字符串数据可以应用PHP提供的addslashes()函数和stripslashes()函数,下面分别介绍这两个函数:
    addslashes()函数:此函数用来为字符串str加入斜线“/”。语法:

String addslashes(string str)

stripslashes()函数:此函数用来将使用addslashes()函数转义后的字符串str返回原样。语法:

String stripslashes(string str)

    addcslashes()函数:实现转义字符串中的字符,即在指定的字符charlist前加上反斜线;stripcslashes()函数则用来将应用addcslashes()函数转义的字符串str还原。语法和addslashes()及stripslashes()是一样的。

8.3.3 获取字符串长度

         获取字符串的长度主要通过strlen()函数实现,下面重点讲解strlen()函数的语法及其应用。
语法:

int strlen(string str)

实例:

<?php
    echo strlen(“欣才教育:www.phpedu.org”);  //结果:24
?>

说明:数字占两个字符,数字、英文、小数点、下划线和空格占一个字符。

8.3.4 截取字符串

         PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符。PHP对字符串截取可以采用PHP的预处理函数substr()实现。这部分知识非常实用,学员们要认真领会,忘记后可以查一下PHP手册。
语法:

string substr(string str,int start[,int length])

    substr()函数的参数说明如表8-1所示:
表8-1:substr()函数的参数说明
参数
说明
str
指定字符串对象
start
指定开始截取字符串的位置。如果参数start为负数,则从字符串的末尾开始截取
length
可选参数,指定截取字符的个数,如果length为负数,则表示取到倒数第length个字符
实例:

<?php
    echo substr(“She is a weill-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);
?>

输出结果为:

She is a well-read girl
is a well-read girl
girl
She is a well-read

8.3.5 比较字符串

按字节进行字符串的比较有两种方法,分别是strcmp()和strcasecmp(),通过这两个函数即可实现对字符串进行按字节的比较。这两个函数的区别是:strcmp()函数区分字符的大小写,而strcasecmp()函数不区分字符的大小写。用法:

int strcmp(string str1,string str2)

参数str1和参数str2指定要比较的两个字符串。如果想等则返回0;如果参数str1大于参数str2则返回值大于0;如果参数str1小于参数str2则返回值小于0;

<?php
$str1 = “欣才教育”;
$str2 = “欣才教育”;
$str3 = “thinksite”;
$str4 = “THINKSITE”;
echo strcmp($str1,$str2);    //结果:0
echo strcmp($str3,$str4);    //结果:1
echo strcasecmp($str3,$str4);    //结果:0
?>

8.3.6 检索字符串

         1. strstr()函数:查找指定的关键字,获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。语法:

int strstr(string haystack,string needle)

实例:

<?php
echo strstr(“欣才教育”,”才”);    //输出结果:才教育
echo “<br>”;
echo strstr(“www.phpedu.org”,”php”);   //输出结果:phpedu.org
?>

8.3.7 替换字符串

1. str_ireplace()函数:使用新的子字符串(子串)替换原始字符串中被指定要替换的字符串。语法:

mixed str_ireplace(mixed search,mixed replace,mixed subject[,int & count])

将所有在参数subject中出现的参数Search以参数replace取代,参数&count表示取代字符串执行的次数。本函数区分大小写。
实例:
[b]<?php[/b][b]$str2 = “欣才教育”;[/b][b]$str1 = “thinksite”;[/b][b]$str = “欣才教育是一家专业提供PHP培训的公司。”;[/b][b]?>[/b]
上例输出结果为:thinksite是一家专业提供PHP培训的公司。
2.  substr_replace()函数:对指定字符串中的部分字符串进行替换。语法:
[b]string substr_replace(string str,string repl,int start,[int length])[/b]
str:指定要操作的原始字符串;
repl:指定替换后的新字符串;
start:指定替换字符串开始的位置。正数表示起始位置从字符串开头开始;负数表示起始位置从字符串的结尾开始;0表示起始位置从字符串中的第一个字符开始。
length:可选参数,指定返回的字符串长度。默认值是整个字符串。
实例:

<?php
$str = “用今日的努力学习,换明日的双倍回报!”:
$replace = “百倍”;
echo substr_replace($str,$replace,26,4);
?>

在上面的代码中,主要使用substr_replace()函数实现将字符串“双倍”替换为字符串“百倍”。
结果为:用今日的努力学习,换明日的百倍回报!

8.3.8 格式化字符串

         PHP中,字符串的格式化方式有多种,按照格式化的类型可以分为字符串的格式化和数字的格式化,数字的格式化最为常用,本节将重点讲解格式化number_format()函数。
         number_format()函数用来将数字字符串格式化。
         语法:

string number_format(float number,[int num_decimal_places],[sting dec_seperator],string thousands_seperator)

    number_format()函数可以有一个、两个或是4个参数,但不能是3个参数。如果只有一个参数number,number格式化后会舍去小数点后的值,且每一千就会以逗号(,)来隔开;如果有两个参数,number格式化后会到小数点第num_decimal_replaces位,且每一千就会逗号来隔开;如果有4个参数,number格式化后到小数点第num_decimal_places位,dec_seperator用来替代小数点(.),thousans_seperator用来替代每一千隔开的逗号(,)
    实例:

<?php
$number = 1868.96;
echo number_format($number);   //输出结果:1,869
echo “<br>”;
echo number_format($number,2);  //输出结果:1,869.96
echo “<br>”;
$number2 = 11886655.760055;
echo number_format($number2,2,’.’,’.’);  //输出结果:11.886.655.76
?>

8.3.9 分割字符串

         字符串的分割是通过explode()函数来实现的。
         explode()函数按照指定的规则对一个字符串进行分割,返回值为数组。
         语法:

array explode(string separator,string str,[int limit])

separator:必要参数,指定的分割符。如果separator为空字符串(””),explode()将返回false。如果separator所包含的值在str中找不到,那么explode()函数将返回str单个元素的数组。
str:必要参数,指定将要被进行分割的字符串
limit:可选参数,如果设置了limit参数,则返回的数组包含最多limit个元素,而最后的元素将包含string的剩余部分;如果limit参数为负数,则返回除了最后的-limit个元素外的所有元素。
实例:

<?php
$str = “PHP学习@PHP编程@PHP开发”;
$str_arr = explode(“@”,$str);
print_r ($str_arr);
?>

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