字符串是许多编程语言(包括PHP)中的基本标量类型之一。它们表示从单个字符到整个文档的文本数据。
最简单的字符串编程涉及单字节文本,它可以表示256个不同的字符。ASCII是最常见的编码。核心PHP语言有许多有用的函数来操作这些字符串。
如果您在PHP中做过任何编程,您可能会遇到echo,但您可能没有意识到它实际上根本不是一个函数。事实上,echo是一种语言构造,因此即使您使用它比任何真正的字符串函数都多,也不能总是使用它来代替函数。
您几乎总是这样使用它:
echo "Hello, world";但实际上你可以像函数一样调用它:
echo("Hello, world");虽然看起来是这样,但实际上这并不是一个函数调用。例如,不能将其返回值赋给变量:
$a = echo("Hello, world");Parse error: syntax error, unexpected 'echo' (T_ECHO)输出字符串值的另一种方法是使用print。同样,这不是一个真正的函数,尽管它比echo更接近于一个函数。与echo一样,您可以不使用括号来调用它:
print "Hello, world";但是,与echo不同的是,它确实返回一个您可以指定的值,尽管该值始终为1:
$a = print("Hello, world");echo $a; // 1printf函数实际上是一个实函数。与echo和print一样,它输出字符串,但它有一些独特的行为,反映了c语言的相同功能:
$username = "John";$length = printf("Hello, %s", $username); // "Hello, John"echo $length; // 11第一个参数仍然是一个字符串,用双引号括起来。但是printf将对字符串中的特殊字符序列执行各种替换。这些序列以百分比符号开始,就像上面的%s一样。在这个特定的例子中,%s代表一个字符串,printf用下一个参数替换它,这个参数是$username的值。
printf函数返回一个有用的值,即格式化字符串的长度。例如,当将变量传递给printf时,这对于不能预先知道长度的代码非常有用。您可以使用该返回值来确定字符串将在命令行上占用多少物理空间。
谈到字符串长度,确定字符串长度的标准方法是strlen函数。这个函数非常简单:它接受一个字符串参数并以整数形式返回字节数。如前所述,对于ASCII文本,字节数与字符数相同:
$length = strlen("Hello, World");echo $length; // 12在处理字符串时,一个非常常见的任务是提取该字符串的一部分。有几种方法可以做到这一点,这里给出的第一种方法指定了所需子字符串的位置和长度。substr函数根据这些参数提取字符串的固定部分。
$greeting = substr("Hello, World", 0, 5);echo $greeting; // "Hello"注意,与大多数编程语言一样,PHP从0开始计算字符串偏移量。PHP与某些语言的不同之处在于,该函数的第二个参数是结果字符串的长度。
相关:最差和最难的编程语言
另一个区别是PHP支持偏移量和长度的负值。如果偏移量为负,则结果将从字符串的结尾开始计数,而不是从开始计数:
$greeting = substr("Hello, World", -5, 5);echo $greeting; // "World"如果长度为负数,则表示删除的字符数,而不是包含的字符数:
$greeting = substr("Hello, World", 0, -6);echo $greeting; // "Hello,"文本处理的一个重要部分是查找一个字符串在另一个字符串中的位置。在PHP中,您可以通过strpos函数实现这一点:
$pos = strpos("Hello, World", ",");echo $pos; // 5您可以将strpos与substr结合使用,为提取字符串的一部分提供更通用的方法:
$string = "Hello, World";$pos = strpos($string, ",");$first_part = substr($string, 0, $pos);echo $first_part; // "Hello"传统的ASCII字符串有明确定义的大小写变体。a的大写版本是a。Z的小写版本是Z。strtoupper和strtolower函数执行这些转换。它们对ASCII字符串中的每个字符执行此操作:
$original = "hello, WORLD";$upper = strtoupper($original);$lower = strtolower($original);echo "$lower $upper"; // "hello, world HELLO, WORLD"有时,您会得到一个包含前导或尾随空格的字符串:空格、制表符或换行符。这通常是不需要的,但修剪可以消除它:
$trimmed = trim(" Hello, World ");echo $trimmed; // "Hello, World"爆炸功能听起来很危险,但别担心,它不会造成任何持久的伤害!相反,它将一个字符串转换为一个字符串数组,由另一个字符串(通常是一个字符)分隔。例如,如果你想把一个句子分成几个单独的单词,它可能会很有用。
$sentence = "The quick brown fox jumps over the lazy dog";$words = explode(" ", $sentence);$words变量现在是一个包含单个单词的数组:
[ "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" ]与explode类似,str\u split函数将一个字符串分解为一个较小的字符串数组。与explode不同,最终的字符串不是由其内容决定的,而是由其长度决定的。
$parts = str_split("Hello, World", 6);$parts数组现在包含两个子字符串,每个子字符串长度为6个字符:
[ "Hello,", " World" ]可以使用str\u replace对字符串执行简单的搜索和替换操作。它需要三个参数:要搜索的字符串、替换字符串和要搜索的原始字符串。函数返回新字符串:
$result = str_replace("o", "OO", "Hello, World");echo $result; // "HellOO, WOOrld"由于PHP经常用于web开发,因此处理文本是一项常见的任务。
这里提供的函数是使用PHP处理文本最有用的函数之一。该语言本身内置了大约100个字符串处理函数。
请记住,这里显示的函数用于ASCII字符串,而不是Unicode字符串。PHP还支持Unicode和其他多字节字符编码方案,并有一组单独的函数。
...起来,不再花几个小时手工做事情。我们在这里向您展示如何在数字中使用公式和函数,使您的数据更易于使用。 ...
...果执行操作。这有助于我们自动化电子表格中的任务。 如何使用if函数 IF函数是Excel中的主要逻辑函数,因此首先要理解它。它将在本文中多次出现。 让我们先看看IF函数的结构,然后看看它的一些用法示例。 IF函数接受3位信息...
...需要首先使用FTP应用程序创建该目录。我们稍后会讨论你如何做到这一点,所以如果你不知道怎么做,不要担心。最后,输入将用于访问上载文件的URL前缀。无论您是否使用上载文件夹或上载到域的根目录,该URL都将如下所示:...
...种可以接受多个表达式的语言结构,它是老程序员更喜欢使用的语言结构,因为它是计算机编程早期使用的命令。 它在返回整数值的能力上表现为一个函数。它可以用括号括起来,而不是所有PHP程序员都使用括号。对于条件构...
...归的缩写。PHP是在PHP许可证下发布的自由软件,由于PHP的使用受到限制,与GNU通用公共许可证(GPL)不兼容。 PHP是一种开源的服务器端HTML嵌入式脚本语言。它基本上可以执行其他CGI程序可以执行的任何任务,但它主要用于创建...
...归的缩写。PHP是在PHP许可证下发布的自由软件,由于PHP的使用受到限制,与GNU通用公共许可证(GPL)不兼容。 PHP是一种开源的服务器端HTML嵌入式脚本语言。它基本上可以执行其他CGI程序可以执行的任何任务,但它主要用于创建...
...归的缩写。PHP是在PHP许可证下发布的自由软件,由于PHP的使用受到限制,与GNU通用公共许可证(GPL)不兼容。 PHP是一种开源的服务器端HTML嵌入式脚本语言。它基本上可以执行其他CGI程序可以执行的任何任务,但它主要用于创建...
...归的缩写。PHP是在PHP许可证下发布的自由软件,由于PHP的使用受到限制,与GNU通用公共许可证(GPL)不兼容。 PHP是一种开源的服务器端HTML嵌入式脚本语言。它基本上可以执行其他CGI程序可以执行的任何任务,但它主要用于创建...
...FTP程序。 基础 您首先需要掌握的基本技能包括: 如何分别使用<?PHP和?>开始和结束PHP代码。 如何在代码中留下不执行的注释;它们只是通知将来处理您的代码的程序员(或提醒您的想法)。 如何使用echo和print语句...
...样的地址包含的数字应该被视为文本,而不是数字。 如何使用该功能 Is_string在if()语句中用于以一种方式处理字符串,以另一种方式处理非字符串。它返回true或false。例如: <?php if (is_string(23)) {echo "Yes";} else {echo "No";}...