关键要点
strlen()
、str_replace()
、strpos()
、strtolower()
、strtoupper()
和 substr()
。trim()
函数可以去除字符串开头和结尾的空格或其他指定字符,这有助于在处理之前清理用户输入。ltrim()
和 rtrim()
函数执行类似的操作,但分别只去除字符串左侧或右侧的字符。substr()
函数用于截取字符串,可以指定从哪里开始截取以及截取的长度。将其与 strpos()
函数结合使用,可以精确地从字符串中提取文本。str_replace()
函数允许替换字符串中特定的单词或字符。PHP 有大量的内置字符串处理函数,可以让你轻松地以几乎任何可能的方式操作字符串。然而,学习所有这些函数,记住它们的功能以及它们可能派上用场的时间,可能会有点令人生畏,特别是对于新手开发者来说。在一篇文章中不可能涵盖每一个字符串函数,而且,PHP 手册就是为此而存在的!但我将展示如何使用一些你应该知道的常用字符串处理函数。学习之后,你将能够像任何一位演奏家一样熟练地操作字符串!
大小写转换
PHP 提供了一些函数,使你能够操作字符串中字符的大小写,而无需逐个字符地编辑字符串。你为什么会在乎这个?也许你想确保某些文本全部大写,例如首字母缩写、标题,为了强调或只是为了确保名称正确地大写。或者,你可能只想比较两个字符串,并且你想确保你正在比较的字母是相同的字符集。大小写转换函数很容易掌握;你只需将字符串作为参数传递给函数,返回值就是处理后的字符串。如果你想确保特定字符串中的所有字母都大写,可以使用 strtoupper()
函数,如下所示:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
也许很明显,但仍然值得注意的是,数字和其他非字母字符不会被转换。正如你可能猜到的那样,strtolower()
函数与 strtoupper()
的作用恰好相反,它将字符串转换为全部小写字母:
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
在其他时候,你可能希望确保某些单词(例如姓名或标题)只大写每个单词的第一个字母。为此,可以使用 ucwords()
函数:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
也可以使用 lcfirst()
和 ucfirst()
函数来操作字符串的第一个字母的大小写。如果要将第一个字母小写,请使用 lcfirst()
。如果要将第一个字母大写,请使用 ucfirst()
。ucfirst()
函数可能最有用,因为你可以用它来确保句子总是以大写字母开头。
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
快速修剪
有时需要修剪字符串的边缘。它可能在开头或结尾有空格或其他字符需要删除。空格可以是实际的空格字符,也可以是制表符、回车符等。一个你可能需要这样做的情况的例子是,当你处理用户输入并希望在开始处理之前清理它时。PHP 中的 trim()
函数允许你做到这一点;你可以将字符串作为参数传递,并且将删除该字符串开头和结尾的所有空格:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
trim()
也是多用途的,除了字符串之外,你还可以传递一组字符,它将删除开头或结尾处与之匹配的任何字符:
<?php $str = "how long is a piece of string?"; $cased = ucfirst($str); // 显示:How long is a piece of string? echo $cased; ?>
使用这些附加字符时需要小心,因为 trim()
只有在你明确提供要删除的字符之一作为空格时才会删除空格:
<?php $str = " A piece of string? "; // 显示:string(22) " A piece of string? " var_dump($str); $trimmed = trim($str); // 显示:string(18) "A piece of string?" var_dump($trimmed); ?>
即使 trim()
只删除字符串开头和结尾的字符,它也删除了“A”和空格,因为当“A”被删除时,空格成为字符串的新开头,因此也被删除。PHP 中还有 ltrim()
和 rtrim()
函数,它们类似于 trim()
函数,但分别只删除字符串左侧或右侧的空格(或其他指定字符)。
字符串长度
在处理字符串时,你经常需要知道它的长度。例如,在处理表单时,你可能有一个字段,你想确保用户不能超过一定数量的字符。要计算字符串中的字符数,可以使用 strlen()
函数:
<?php $str = "A piece of string?"; $trimmed = trim($str, "A?"); // 显示:string(16) " piece of string" var_dump($trimmed); ?>
截取字符串
另一种常见的情况是在给定的字符串中查找特定文本并将其“剪切”出来,以便你可以对它执行其他操作。要将字符串剪切到指定大小,你需要一把好的剪刀,在 PHP 中,你的剪刀是 substr()
函数。要使用 substr()
函数,请将要处理的字符串作为参数传递,以及一个正整数或负整数。该数字决定你将从哪里开始剪切字符串;0 从字符串的第一个字符开始(记住,当你遍历字符串时,左侧的第一个字符从位置 0 开始,而不是 1)。
<?php $str = "A piece of string?"; $trimmed = trim($str, "A ?"); // 显示:string(15) "piece of string" var_dump($trimmed); ?>
当使用负数时,substr()
将从字符串的末尾向后开始。
<?php $str = "How long is a piece of string?"; $size = strlen($str); // 显示:30 echo $size; ?>
substr()
的可选第三个参数是长度,另一个整数值,允许你指定要从字符串中提取的字符数。
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
如果你只需要找到特定文本在字符串中的位置,而不需要其他任何操作,可以使用 strpos()
函数,它返回你的选择相对于字符串开头的位 置。一个有用的技巧,尤其是在你不知道要从字符串中剪切的文本的起始位置时,是将这两个函数结合起来使用。不必将起始位置指定为整数,你可以搜索特定文本,然后提取该文本。
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
替换
最后,让我们看看如何用其他内容替换字符串的一部分,为此可以使用 str_replace()
函数。这非常适合你只想替换字符串中特定单词或一组字符的实例并将其替换为其他内容的情况:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
如果你想替换多个值,也可以为 str_replace()
提供数组:
<?php $str = "how long is a piece of string?"; $cased = ucfirst($str); // 显示:How long is a piece of string? echo $cased; ?>
str_replace()
区分大小写,因此如果你不想担心这个问题,可以使用它的不区分大小写的同级函数 str_ireplace()
。
总结
希望这篇文章让你了解了在 PHP 中使用字符串的一些操作,并让你渴望学习更多。我实际上只是触及了皮毛!了解所有不同字符串函数的最佳方法是花一些时间阅读 PHP 手册中的“字符串函数”页面。我很想知道你最常使用哪些字符串函数,所以请随时在下面的评论中提及它们。图片来自 Vasilius / Shutterstock
PHP 字符串处理函数常见问题解答
PHP 提供了广泛的字符串处理函数。一些最常用的函数包括:
strlen()
:此函数返回字符串的长度。str_replace()
:此函数用字符串中的其他字符替换某些字符。strpos()
:此函数查找字符串在另一个字符串中第一次出现的 位置。strtolower()
:此函数将字符串转换为小写。strtoupper()
:此函数将字符串转换为大写。substr()
:此函数返回字符串的一部分。这些函数用于以各种方式操作和处理字符串,例如更改字符串的大小写、查找字符串的长度、替换字符串的部分内容等等。
在 PHP 中,str_split()
函数用于将字符串转换为数组。此函数按长度将字符串拆分为数组。这是一个例子:
<?php $str = " A piece of string? "; // 显示:string(22) " A piece of string? " var_dump($str); $trimmed = trim($str); // 显示:string(18) "A piece of string?" var_dump($trimmed); ?>
在这个例子中,str_split()
函数将字符串“Hello, World!”拆分为一个数组,其中每个元素都是字符串中的单个字符。
PHP 提供了几个用于比较字符串的函数,包括 strcmp()
、strcasecmp()
、strnatcmp()
和 strnatcasecmp()
。strcmp()
函数对两个字符串进行二进制安全和区分大小写的比较。这是一个例子:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
在这个例子中,strcmp()
函数比较字符串“Hello”和“World”。如果 string1 大于 string2,则函数返回 0,如果它们相等,则返回 0。
PHP 中的 strrev()
函数用于反转字符串。这是一个例子:
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
在这个例子中,strrev()
函数反转字符串“Hello, World!”。
PHP 中的 trim()
函数用于从字符串的两侧删除空格和其他预定义的字符。这是一个例子:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
在这个例子中,trim()
函数删除字符串“ Hello, World! ”开头和结尾的空格。
以上是PHP字符串处理功能的详细内容。更多信息请关注PHP中文网其他相关文章!