PHP - 字符串



字符串是一系列字符,例如 'PHP 支持字符串操作'。PHP 中的字符串是字节数组和表示缓冲区长度的整数。在 PHP 中,字符与字节相同。这意味着 PHP 只支持 256 个字符集,因此不提供原生 Unicode 支持。

PHP 支持单引号和双引号字符串的表示方式。'这是一个简单的字符串' 和 "这是一个简单的字符串" 都是有效的表示方法。PHP 还具有 Heredoc 和 Nowdoc 字符串数据类型的表示方法。

单引号字符串

用单引号 (') 括起来的一系列字符就是一个字符串。

$str = 'this is a simple string';

示例

如果要包含字面意义上的单引号,请用反斜杠 (\) 转义。

<?php
   $str = 'This is a \'simple\' string';
   echo $str;
?>

将输出如下结果

This is a 'simple' string  

示例

要指定字面意义上的反斜杠,请将其加倍 (\\)。

<?php
   $str = 'The command C:\\*.* will delete all files.';
   echo $str;
?>

输出如下:

The command C:\*.* will delete all files.

示例

诸如 "\r" 或 "\n" 之类的转义序列将被视为字面量,其特殊含义不会被解释。如果变量出现在单引号字符串中,它们也不会被展开。

<?php
   $str = 'This will not expand: \n a newline';
   echo $str . PHP_EOL;
   $x=100;
   $str = 'Value of x = $x';
   echo $str;
?>

它将产生以下输出

This will not expand: \n a newline
Value of x = $x

双引号字符串

用双引号 (" ") 括起来的一系列字符是另一种字符串表示方式。

$str = "this is a simple string";

单引号字符串和双引号字符串是等效的,除了它们对转义序列的处理方式不同。PHP 将解释某些用于特殊字符的转义序列。例如,"\r" 和 "\n"。

序列 含义
\n 换行符 (LF 或 ASCII 中的 0x0A (10))
\r 回车符 (CR 或 ASCII 中的 0x0D (13))
\t 水平制表符 (HT 或 ASCII 中的 0x09 (9))
\v 垂直制表符 (VT 或 ASCII 中的 0x0B (11))
\e 转义符 (ESC 或 ASCII 中的 0x1B (27))
\f 换页符 (FF 或 ASCII 中的 0x0C (12))
\\ 反斜杠
\$ 美元符号
\" 双引号

如何在 PHP 中转义八进制和十六进制字符?

PHP 支持将八进制数和十六进制数转义为其 ASCII 字符。例如,P 的 ASCII 字符在十进制中为 80。十进制 80 的八进制表示为 120。同样,十进制 80 的十六进制表示为 50。

要转义八进制字符,请在其前面加上 "\"; 要转义十六进制字符,请在其前面加上 "\x"。

<?php
   $str = "\120\110\120";
   echo "PHP with Octal: ". $str;
   echo PHP_EOL;

   $str = "\x50\x48\x50";
   echo "PHP with Hexadecimal: ". $str;
?>

查看输出

PHP with Octal: PHP
PHP with Hexadecimal: PHP

与单引号字符串一样,转义任何其他字符也会导致反斜杠也被打印出来。双引号字符串最重要的特性是变量名将被展开。

示例

PHP 中的双引号字符串会展开变量名(PHP 变量以 $ 符号为前缀)。要在 PHP 字符串中实际表示 "$" 符号,请用 "\" 字符在其前面转义。

<?php
   $price = 200;
   echo "Price = \$ $price";
?>

您将得到以下输出

Price = $ 200

字符串连接运算符

要将两个字符串变量连接在一起,PHP 使用点 (.) 运算符:

<?php
   $string1="Hello World";
   $string2="1234";

   echo $string1 . " " . $string2;
?>

这里,您将得到以下输出

Hello World 1234

在上面的示例中,我们两次使用了连接运算符。这是因为我们必须插入第三个字符串。在两个字符串变量之间,我们添加了一个包含单个字符(空格)的字符串,以分隔这两个变量。

PHP 的标准库包含许多用于字符串处理的函数。可以在 PHP 的官方文档中找到它们 (https://php.net/manual/en/ref.strings.php)。

strlen() 函数

strlen() 函数用于查找字符串的长度。

示例

让我们查找字符串 "Hello world!" 的长度:

<?php
   echo strlen("Hello world!");
?>

它将产生以下输出

12

当需要知道字符串何时结束时(例如,在循环中,我们希望在字符串的最后一个字符之后停止循环),字符串的长度经常用于循环或其他函数中。

strpos() 函数

strpos() 函数用于在一个字符串中搜索字符串或字符。

  • 如果在字符串中找到匹配项,则此函数将返回第一个匹配项的位置。

  • 如果没有找到匹配项,则返回 FALSE。

示例

让我们看看我们能否在我们的字符串中找到字符串 "world":

<?php
   echo strpos("Hello world!","world");
?>

它将产生以下输出

6

如您所见,字符串 "world" 在我们字符串中的位置是 "6"。之所以是 "6" 而不是 "7",是因为字符串中的第一个位置是 "0" 而不是 "1"。

广告