Php 简明教程

PHP - Strings

字符串是一系列字符,如“PHP 支持字符串操作”。PHP 中的字符串是一个字节数组和一个指示缓冲区长度的整数。在 PHP 中,字符与字节相同。这意味着 PHP 仅支持 256 个字符集,因此不提供本机的 Unicode 支持。

PHP 支持单引号和双引号的字符串格式。两种格式“this is a simple string”和“this is a simple string”均有效。PHP 还有 Heredoc 和 Nowdoc 形式的字符串数据类型。

Single-Quoted String

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

$str = 'this is a simple string';

Example

如果要包含一个文字单引号,请用反斜杠(\)对其进行转义。

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

它将给出以下内容:

This is a 'simple' string

Example

要指定一个文字反斜杠,请将其加倍(\\)。

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

以下是它的 @{s0}

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

Example

诸如“\r”或“\n”之类的转义序列将被视为文本,并且不会解释它们的特殊含义。如果变量出现在单引号字符串中,它们也不会扩展。

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

它将生成以下 output

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

Double-Quoted String

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

$str = "this is a simple string";

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

Sequence

Meaning

\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))

|backslash

\$

dollar sign

\"

How to Escape Octal and Hexademical Characters in 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;
?>

检查 output

PHP with Octal: PHP
PHP with Hexadecimal: PHP

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

Example

PHP 中的双引号串展开变量名(PHP 变量用 $ 符号作为前缀)。如要在 PHP 串中实际表示 “$” 符号,用 “\” 字符进行转义。

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

您将获得以下内容 output

Price = $ 200

String Concatenation Operator

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

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

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

在这里,你会得到以下 output

Hello World 1234

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

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

The strlen() Function

strlen() 函数用于找到一个字符串的长度。

Example

让我们找到字符串 “Hello world!” 的长度 −

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

它将生成以下 output

12

字符串的长度通常用于循环或其他函数中,这些时候了解字符串何时结束非常重要(也就是说,在循环中,我们希望在字符串中的最后一个字符后面停止循环)。

The strpos() Function

strpos() 函数用于在字符串内搜索字符串或字符。

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

  2. 如果没有找到匹配项,它将返回 FALSE。

Example

让我们看看能否在我们的字符串中找到字符串 “world” −

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

它将生成以下 output

6

如你所见,字符串 “world” 在我们字符串中的位置是 “6”。这个位置是 “6” 而不是 “7” 的原因是字符串中的第一个位置是 “0”,而不是 “1”。