在本教程中,我们将学习PHP字符串和各种操作字符串的内置字符串函数。
在PHP中,字符串是字符的序列。
在PHP中定义文字字符串有四种方法:单引号、双引号、heredoc语法和nowdoc语法。
若要定义一个字符串,请将单引号(')中包含的字面量字符串值赋给新变量,如下所示:
<?php
$str
=
'这是一个PHP字符串'
;
这是在PHP中定义字符串的最简单方法。
你也可以使用双引号("), 如下所示:
$str2
"PHP字符串也可以用双引号括起来"
当你用双引号来括起一个字符串时,PHP会给你一些额外的特性:
让我们看一下例子:
$site_name
'theITroad.com'
$message
"欢迎访问 $site_name!"
echo
// 欢迎访问 theITroad.com
PHP会将双引号字符串$message中的$site_name变量替换为它的值'theITroad.com'。
下面的示例演示了如何在双引号字符串中使用特殊字符:
$foo
'World'
"Hello\n$foo"
'<pre>'
.
'</pre>'
//Hello
//World
PHP使用换行替换特殊字符\n。
如果您想定义一个包含大量单引号或双引号的字符串,您可以使用heredoc和nowdoc语法来避免使用转义字符。
下面是heredoc的语法:
= <<<IDENTIFIER
把字符串放在这里
IDENTIFIER;
首先,指定操作符<<<,然后是标识符 IDENTIFIER,最后是换行符。接下来,放入一个字符串值。最后,使用相同的标识符IDENTIFIER 来关闭字符串。
下面的例子使用heredoc语法定义了一个字符串:
$s
= <<<EOT
我是一个使用heredoc语法的字符串。
我可以包含单引号(')和双引号标记("),
也可以使用转义字符。比如将\n转换为换行符。
我还将字符串中的变量替换成他们的值。
EOT;
nowdoc语法字符串与heredoc语法字符串类似,只是nowdoc语法中的标识符用单引号括起来。
= <<<
'EOT'
我是一个使用nowdoc语法的字符串。
但不能使用转义字符。即不会进行特殊字符转换
也不将字符串中的变量替换成他们的值。
要访问字符串中特定位置的字符,可以使用以下语法:
[index]
将索引index放在字符串变量后面的方括号[]之中。字符串的第一个位置是零(0)。
可以使用index读取和更改字符串的内容,如下例子所示:
'this is a PHP string'
[0] =
'T'
要获取字符串中的字符数,可以使用内置函数strlen()。它接受一个字符串作为参数并返回该字符串中的字符数。
让我们看看下面使用strlen()函数的示例:
strlen
(
);
// 请注意中英文字符串的长度问题
// 特别是文件保存为utf-8和ansi不同编码的情况
// 对于utf-8格式来说,计算字符串长度一般使用mb_strlen
mb_strlen (
,
'utf-8'
如果要计算字符串中的字数,可使用str_word_count()函数:
'This is a PHP string'
str_word_count
// 5
PHP提供了两个内置函数strcmp()和strcasecmp()用于比较两个字符串。两个函数都接受两个字符串参数并返回一个整数:
strcmp()函数和strcasecmp()函数之间的惟一区别是:strcasecmp()函数比较字符串时忽略大小写,而strcmp()函数则不忽略。
$str1
'PHP String'
'php string'
$result
strcasecmp
if
== 0){
'$str1 和 $str2 相等'
}
else
> 0){
'$str1 大于 $str2'
{
'$str1 小于 $str2'
输出:
$str1 和 $str2 相等
在PHP中, 可以使用点号(.)操作符连接字符串。
如果将字符串与非字符串类型的变量连接,结果将是字符串,因为PHP在连接之前会自动将非字符串变量转换为字符串变量。
下面的例子演示了字符串连接:
'这是PHP字符串'
' 的连接字符串演示。'
'<br/>'
$age
= 2;
$s1
'岁了'
$s2
' 站点theitroad'
' '
'.'
PHP为搜索字符串提供了几个有用的函数,包括strstr()、strpos()、strrpos()、substr_count()和strpbrk()。
要检查字符串是否包含特定的子字符串,可以使用strstr()函数。
strstr()接受两个参数:要检查的字符串和要搜索的子字符串。如果找到了子字符串,该函数将返回从找到的文本开始到字符串结束的部分。如果找不到子字符串,则返回false。
'Find a substring in a string 在字符串中查找子字符串'
$sub_str
'substring'
strstr
//substring in a string 在字符串中查找子字符串
要获得字符串中出现子字符串的次数,可以使用substr_count()函数。
substr_count()函数在很多情况下是很有用的,例如,可以计算一篇文章中提到一个关键字的次数来计算它的密度。
A string is series of characters, where a character is the same
as
a byte.
This means that PHP only supports a 256-character set,
and
hence does not offer native Unicode support.
See details of the string type.
Note : As of PHP 7.0.0, there are no particular restrictions
regarding the length of a string on 64-bit builds.
$keyword
'string'
$word_count
$keyword_count
= substr_count(
$density
* 100 /
number_format(
, 2,
''
) .
'%'
//5.36%
如果想知道子字符串在字符串中的确切位置,可以使用strpos()函数。它返回字符串中第一个子字符串的位置。
'Using strpos function in PHP'
'strpos'
strpos
// 6
strrpos()函数与strpos()函数类似,只是它返回字符串中子字符串最后一次出现的位置。
'String function'
'n'
// 4
strrpos
// 14
要检查字符串是否包含一组字符中的任何字符,可以使用strpbrk()函数。
strpbrk()函数接受两个参数:一个字符串和一组需要查找的字符。它返回从找到的字符开始的子字符串,如果一组字符中的字符没有出现在字符串中,则返回false。
strbbrk()函数在很多情况下都是有用的,例如,你可以检查一个用户名是否包含一个集合中的任何特殊字符,@,$,%等等。
$username1
'theITroad'
$username2
'admin@itroad'
$not_allowed_chars
'!@#$%^&*'
strpbrk
)){
'username1是无效的用户名,因为它包含了'
'中的字符'
'username2是无效的用户名,因为它包含了'
PHP提供了一些有用的字符串替换函数,可以用不同的字符串替换字符串的某些部分,包括str_replace()、substr_replace()和strst()。
要用替换字符串替换所有出现的搜索字符串,可以使用str_replace()函数。
让我们看看下面的例子:
= 'A string is series of characters.
See details of the string type. ';
str_replace
'text'
// A text is series of characters.
// See details of the text type.
我们将字符串$str中所有出现的' string '都替换成了' text '。
要计算搜索字符串被替换的次数,需要将第四个参数传递给函数,如下所示:
$times
= 0;
"字符串被替换了$times 次"
输出:
字符串被替换了2 次
' 开头有空格的字符串'
'末尾有空格的字符串 '
$s3
' 在开头和结尾处都有空白的字符串 '
ltrim(
rtrim(
trim(
原文链接:https://codingdict.com/