PHP学习笔记-字符串操作2

转载请标明出处:
http://blog.csdn.net/hai_qing_xu_kong/article/details/51611893
本文出自:【顾林海的博客】

前言

五月一号离的职,回老家休息了一个月,玩的也差不多了,来上海已经三四天了,准备开始找工作,想想又得经历一个苦逼的求职之旅,我自己本身是一名Android开发,很多人问我为什么还学其他的编程语言,只能说兴趣吧,不想局限在一个领域里。

如何获取字符串的长度

获取字符串的长度使用的是strlen()函数。

语法格式如下:

int strlen(string str)

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



例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
echo strlen("你好PHP");
?>

</body>
</html>



输出结果:

7

如何截取字符串

字符串截取可以采用PHP的预定义函数substr()实现。

语法格式如下:

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

参数说明:

参数说明
str指定字符串对象
start指定开始截取字符串的位置。如果参数start为负数,则从字符串的末尾开始截取
length可选参数,指定截取字符的个数,如果length为负数,则表示取到倒数第length个字符

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
echo substr("hello,PHP!",0)."<br>";//从第0个字符开始截取
echo substr("hello,PHP!",2,5)."<br>";//从第2个字符开始截取到第5个字符
echo substr("hello,PHP!",-5,2)."<br>";//从倒数第5个字符开始截取2个字符
echo substr("hello,PHP!",0,-5)."<br>";//从第0个字符截取到倒数第5个字符
?>

</body>
</html>

运行结果:

hello,PHP!
llo,P
,P
hello

注意:
substr()函数在截取中文字符串时,如果截取的字符串中出
现奇数,那么就会导致截取的中文字符串出现乱码,因为一个中
文字符由两个字节组成。所以substr()函数适用于对英文字符串的
截取。

如何进行字符串的比较

在PHP中,对字符串之间进行比较的方法有很多种

  • 第一种是使用strcmp()函数按照字节进行比较
  • 第二种是使用strnatcmp()函数按照自然排序法进行比较
  • 第三种是使用strncmp()函数指定从源字符串的位置开始比较

按字节进行字符串的比较

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

strcmp()函数的语法格式如下:

int strcmp ( string str1, string str2)

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

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="你好,PHP!";
$str2="你好,PHP!";
$str3="HELLO,PHP!";
$str4="hello,PHP!";
echo strcmp($str1,$str2)."<br>";
echo strcmp($str3,$str4)."<br>";
echo strcasecmp($str3,$str4);
?>

</body>
</html>

运行结果:

0
-1
0


按自然排序法进行字符串的比较

在PHP中,按照自然排序法进行字符串的比较是通过strnatcmp()函数来实现的。自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小进行排序。

语法格式如下:

int strnatcmp ( string str1, string str2)

如果字符串相等则返回0,如果参数str1大于参数str2则返回值大于0;
如果参数str1小于参数str2则返回值小于0。本函数区分字母大小写。

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="ww2";
$str2="ww10";
echo strnatcmp($str1,$str2)."<br>";
?>

</body>
</html>

运行结果:

-1


指定从源字符串的位置开始比较

strncmp()函数用来比较字符串中的前n个字符。

语法格式如下:

int strncmp(string str1,string str2,int len)

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="Ww2";
$str2="ww10";
echo strncmp($str1,$str2,1)."<br>";
?>

</body>
</html>

运行结果:

-1

检索字符串

1.使用strstr()函数查找指定的关键字

获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回剩余字符串(存在相匹配的字符);如果没有找到相匹配的字符,则返回false。

语法格式如下:

string strstr ( 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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="b.png";
if(strstr($str1,".")!=".png"){
 echo "格式不准确!<br>";
}else{
 echo "格式准确!<br>";
}

?>

</body>
</html>

运行结果:

格式准确!



2.使用substr_count()函数检索子串出现的次数获取指定字符在字符串中出现的次数。

语法格式如下:

int substr_count(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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="你好,PHP";
echo substr_count($str1,"P")

?>

</body>
</html>

运行结果:

2

替换字符串

通过字符串的替换技术可以实现对指定字符串中的指定字符进行替换。字符串的替换技术可以通过以下两个函数实现:str_ireplace()函数和substr_replace()函数。

str_ireplace语法格式:

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

将所有在参数subject中出现的参数search以参数replace取代,参数&count表示取代字符串执行的次数。本函数区分大小写。

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="你好,PHP";
echo str_ireplace("你好","Hello",$str1);

?>

</body>
</html>

运行结果:

Hello,PHP



substr_replace语法格式:

string substr_replace(string str,string repl,int start,[int length])
参数说明
str指定要操作的原始字符串
repl指定替换后的新字符串
start指定替换字符串开始的位置。正数表示起始位置从字符串开头开始;负数表示起始位置从字符串的结尾开始;0表示起始位置从字符串中的第一个字符开始
length可选参数,指定返回的字符串长度。默认值是整个字符串。正数表示起始位置从字符串开头开始;负数表示起始位置从字符串的结尾开始;0表示插入而非替代

例子:

<!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>PHP语言基础</title>

</head>
<body>

<?php
header("Content-Type:text/html;   charset=gb2312");
$str1="你好,PHP";
echo substr_replace($str1,"Hello",0,4);

?>

</body>
</html>

运行结果:

Hello,PHP

©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:上身试试 返回首页