PHP - Strings

Một chuỗi là một chuỗi các ký tự, như 'PHP hỗ trợ các thao tác với chuỗi.' Một chuỗi trong PHP được coi là một mảng byte và một số nguyên chỉ độ dài của bộ đệm. Trong PHP, một ký tự tương đương với một byte. Điều này có nghĩa là PHP chỉ hỗ trợ một tập hợp 256 ký tự, do đó không cung cấp hỗ trợ Unicode bản địa.

PHP hỗ trợ cả chuỗi được định dạng bằng dấu nháy đơn và dấu nháy kép. Cả hai cách biểu diễn 'đây là một chuỗi đơn giản' cũng như "đây là một chuỗi đơn giản" đều hợp lệ. PHP cũng có các biểu diễn Heredoc và Nowdoc cho kiểu dữ liệu chuỗi.

Single-Quoted String

Một chuỗi ký tự được bao quanh bởi dấu nháy đơn (ký tự ') được gọi là một chuỗi.

$str = 'this is a simple string';

Example

Nếu bạn muốn bao gồm một dấu nháy đơn (single quote) nguyên văn, hãy thoát nó bằng cách sử dụng dấu gạch chéo ngược (\).

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

Nó sẽ cho bạn output

This is a 'simple' string  

Example

Để chỉ định một dấu gạch chéo ngược (backslash) nguyên văn, hãy nhân đôi nó (\\).

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

Đây là output của nó −

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

Example

Các chuỗi thoát như "\r" hoặc "\n" sẽ được xử lý theo nghĩa đen và ý nghĩa đặc biệt của chúng sẽ không được giải thích. Các biến cũng sẽ không được mở rộng nếu chúng xuất hiện trong một chuỗi được đặt trong dấu nháy đơn.

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

Nó sẽ tạo ra output

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

Double-Quoted String

Một chuỗi ký tự được bao quanh bởi dấu ngoặc kép (" ") là một biểu diễn chuỗi khác.

$str = "this is a simple string";

Chuỗi được đặt trong dấu nháy đơn và dấu nháy kép là tương đương nhau ngoại trừ cách chúng xử lý các chuỗi thoát. PHP sẽ diễn giải một số chuỗi thoát nhất định cho các ký tự đặc biệt. Ví dụ, "\r" và "\n".

Sequence Meaning
\n linefeed (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\v vertical tab (VT or 0x0B (11) in ASCII)
\e escape (ESC or 0x1B (27) in ASCII)
\f form feed (FF or 0x0C (12) in ASCII)
\\ backslash
\$ dollar sign
\" double-quote

How to Escape Octal and Hexademical Characters in PHP?

PHP hỗ trợ việc thoát một số Octal và một số thập lục phân thành ký tự ASCII của nó. Ví dụ, ký tự ASCII cho P là 80 trong hệ thập phân. 80 trong hệ thập phân chuyển sang hệ Octal là 120. Tương tự, 80 trong hệ thập phân chuyển sang hệ thập lục phân là 50.

Để thoát một ký tự octal, hãy thêm tiền tố "\"; và để thoát một ký tự hexadecimal, hãy thêm tiền tố "\x".

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

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

Kiểm tra output

PHP with Octal: PHP
PHP with Hexadecimal: PHP

Như trong chuỗi được bao bởi dấu nháy đơn, việc thoát bất kỳ ký tự nào khác cũng sẽ dẫn đến việc dấu gạch chéo ngược được in ra. Tính năng quan trọng nhất của chuỗi được bao bởi dấu nháy kép là thực tế rằng tên biến sẽ được mở rộng.

Example

Một chuỗi được bao bởi dấu nháy kép trong PHP sẽ mở rộng tên biến (các biến PHP được định danh bằng ký hiệu $). Để thực sự biểu diễn ký hiệu "$" trong một chuỗi PHP, hãy thoát nó bằng cách thêm ký tự "\" ở phía trước.

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

Bạn sẽ nhận được output

Price = $ 200

String Concatenation Operator

Để nối hai biến chuỗi với nhau, PHP sử dụng toán tử chấm (.) −

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

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

Ở đây, bạn sẽ nhận được output

Hello World 1234

Trong ví dụ trên, chúng ta đã sử dụng toán tử nối chuỗi hai lần. Điều này là vì chúng ta cần chèn một chuỗi thứ ba. Giữa hai biến chuỗi, chúng ta đã thêm một chuỗi chỉ có một ký tự, đó là một khoảng trắng, để tách biệt hai biến.

Thư viện chuẩn của PHP bao gồm nhiều hàm để xử lý chuỗi. Chúng có thể được tìm thấy tại tài liệu chính thức của PHP ( https://www.php.net/manual/en/ref.strings.php ).

The strlen() Function

Hàm strlen() được sử dụng để tìm độ dài của một chuỗi.

Example

Hãy tìm độ dài của chuỗi "Hello world!" −

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

Nó sẽ tạo ra output

12

Độ dài của một chuỗi thường được sử dụng trong các vòng lặp hoặc các hàm khác, khi điều quan trọng là biết khi nào chuỗi kết thúc (tức là, trong một vòng lặp, chúng ta muốn dừng vòng lặp sau ký tự cuối cùng trong chuỗi).

The strpos() Function

Hàm strpos() được sử dụng để tìm kiếm một chuỗi hoặc ký tự trong một chuỗi.

  • Nếu một kết quả phù hợp được tìm thấy trong chuỗi, hàm này sẽ trả về vị trí của kết quả phù hợp đầu tiên.

  • Nếu không tìm thấy kết quả nào, nó sẽ trả về FALSE.

Example

Hãy xem liệu chúng ta có thể tìm thấy chuỗi "world" trong chuỗi của chúng ta không −

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

Nó sẽ tạo ra output

6

Như bạn có thể thấy, vị trí của chuỗi "world" trong chuỗi của chúng ta là "6". Lý do nó là "6", chứ không phải "7", là vì vị trí đầu tiên trong chuỗi là "0", chứ không phải "1".