Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?

Đôi khi, bạn có thể muốn kiểm tra xem một chuỗi có chứa một từ hoặc chuỗi con cụ thể hay không. Điều này là do bạn có thể phải thực hiện một số thao tác trên chuỗi con hoặc từ đó. Một trong những cách dễ nhất để làm điều này là trong PHP là sử dụng hàm strpos(). Chúng ta sẽ xem xét các cách khác để kiểm tra chuỗi con trong bài viết này

Hướng dẫn này sẽ giải thích

  1. Cách kiểm tra xem chuỗi có chứa chuỗi con không
  2. Tìm từ cụ thể trong chuỗi

Sử dụng hàm strrpos() để kiểm tra xem chuỗi có chứa chuỗi con không

Phương thức strrpos() được sử dụng để xác định vị trí xuất hiện cuối cùng của một chuỗi con hoặc từ trong một chuỗi. Vị trí chuỗi bắt đầu từ 0. Nếu không tìm thấy chuỗi, giá trị Boolean Sai được trả về

cú pháp

strrpos(string,find,start)

Phương thức nhận 2 tham số là chuỗi cần tìm và chuỗi con cần tìm. Tham số tùy chọn start cho biết nơi bắt đầu quá trình tìm kiếm

Thí dụ

đầu ra

Word Found at Position: 16

ví dụ 2

đầu ra

Word Found at Position: 16

Trong cả hai ví dụ trên, phương thức strpos() nhận các tham số $mystring và $word. Điều kiện if kiểm tra xem chuỗi con có được tìm thấy hay không. Câu lệnh echo in ra vị trí của chuỗi.   

Sử dụng preg_match để tìm kiếm chuỗi chứa chuỗi con

Phương thức preg_match() là một đối sánh biểu thức chính quy giúp tìm một chuỗi

cú pháp

preg_match(pattern, input)

Các tham số chính là mẫu là biểu thức để tìm kiếm. Tham số đầu vào là chuỗi tìm kiếm diễn ra.    

đầu ra

Word Found

Nếu bạn xem xét hiệu suất, thì strpos() nhanh hơn khoảng ba lần so với preg_match(). Phương thức preg_match() mất khoảng 1. 5 giây để hoàn thành một thao tác, trong khi strpos() mất khoảng 0. 5 giây

Sử dụng chức năng preg_match không phân biệt chữ hoa chữ thường để tìm kiếm chuỗi chứa chuỗi con

Thí dụ

Chữ i ở cuối biểu thức chính quy được dùng để thay đổi biểu thức chính quy thành một biểu thức không phân biệt chữ hoa chữ thường

Sử dụng chức năng preg_match để tìm kiếm công việc cụ thể trong chuỗi

Khi bạn đang tìm kiếm một từ cụ thể chứ không phải một chuỗi con, bạn cần hiểu rằng chúng cũng có thể xuất hiện trong các từ khác. Ví dụ,

  • "are" ở đầu "khu vực"
  • "are" ở giữa "giá vé"

Một cách để giảm thiểu điều này là sử dụng biểu thức chính quy kết hợp với ranh giới từ (\b)

Thí dụ

Ví dụ trên sẽ tìm kiếm từ “are”. Nó không phân biệt chữ hoa chữ thường

Phần kết luận

Nếu bạn muốn tìm chuỗi con như url ‘https. //www. stechies. com/photoshop/’ và bạn muốn tìm kiếm chuỗi con ‘stechies’ thì bạn nên tìm strpos()

Nhưng nếu bạn muốn tìm kiếm một từ cụ thể trong chuỗi, chẳng hạn như “stechies” trong chuỗi 'hi stechies là trang web tốt nhất để hướng dẫn đào tạo' thì bạn nên truy cập preg_match với các biểu thức chính quy

Trong PHP 8, hàm str_contains xác định xem một chuỗi có chứa chuỗi con đã cho ở bất kỳ đâu không. Hàm str_contains kiểm tra xem chuỗi thứ nhất có được chứa trong chuỗi thứ hai hay không và nó trả về giá trị Boolean đúng/sai dựa trên việc tìm thấy chuỗi đó hay không. nó là một chức năng tự giải thích

str_contains(string $haystack, string $needle): bool

Ví dụ 1. PHP 8 hàm str_contains

đầu ra

string(23) "Tutorial has been found"

Thí dụ. hàm str_contains

Ghi chú. Chương trình trên trả về false vì chuỗi đầu tiên không chứa chuỗi thứ hai

hàm strpos()

Trong PHP7. x, hàm strops() dùng để kiểm tra xem một chuỗi đã cho có chứa một chuỗi khác hay không. Hàm này trả về vị trí của chuỗi kim hoặc trả về false nếu không tìm thấy chuỗi kim

Hàm này có khả năng trả về vị trí xuất hiện đầu tiên của chuỗi con bên trong chuỗi. Trong trường hợp không phát hiện chuỗi con, trả về false. Tuy nhiên, vị trí của chuỗi bắt đầu từ 0 chứ không phải 1. Để hiểu rõ hơn về chức năng này, hãy xem ví dụ bên dưới

Có một chức năng mới str_contains() trong PHP 8 cung cấp chức năng tương tự

Hàm strpos() giúp phát hiện vị trí xuất hiện đầu tiên của một chuỗi bên trong một chuỗi khác

Rất nhiều lần khi tôi làm việc với các chuỗi trong PHP, điều quan trọng là phải kiểm tra xem một chuỗi có chứa một chuỗi con khác không. PHP có rất nhiều hàm giúp bạn thao tác với chuỗi theo bất kỳ cách nào bạn muốn. Hôm nay chúng ta sẽ sử dụng một số hàm này để tìm hiểu cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể hay không

  • Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?

    Cách kiểm tra xem một chuỗi có chứa một chuỗi con khác trong PHP không

    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?

    Monty Shokeen

    26 Th02 2021

  • Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?

    Cách cắt chuỗi trong PHP

    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?
    Làm cách nào để kiểm tra xem chuỗi có chứa chuỗi trong php không?

    Monty Shokeen

    28 Thg 1 2021

Sử dụng các hàm mới trong PHP 8

Ba chức năng mới đã được thêm vào trong PHP 8 để giúp chúng tôi tìm hiểu xem một chuỗi có chứa một chuỗi con khác hay không. Xin lưu ý rằng tất cả các hàm này đều phân biệt chữ hoa chữ thường và việc kiểm tra sự tồn tại của một chuỗi con trống với chúng sẽ luôn trả về

<?php
48

  1. <?php
    
    49 kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể không
  2. <?php
    
    50 kiểm tra xem một chuỗi có kết thúc bằng một chuỗi con cụ thể không
  3. <?php
    
    51 kiểm tra xem một chuỗi có bắt đầu bằng một chuỗi con cụ thể không

1
<?php
2
3
$sentence = "Dolphins and Elephants are intelligent animals.";
4
5
if(str_contains($sentence, "Elephants")) {
6
    echo 'Elephants are intelligent.';
<?php
0
<?php
1
<?php
2
<?php
3
<?php
4
<?php
5
<?php
6
<?php
7
<?php
8
<?php
9
<?php
1
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
<?php
1
3
0
3
1
3
2
3
3
3
4

Như tôi đã đề cập trước đó, các chức năng này thực hiện khớp phân biệt chữ hoa chữ thường. Bạn cũng có thể thực hiện khớp không phân biệt chữ hoa chữ thường với chúng bằng cách trước tiên chuyển đổi cả chuỗi và chuỗi con thành cùng một trường hợp bằng cách sử dụng

<?php
52 hoặc
<?php
53

Các chức năng này là lý tưởng nếu bạn không muốn nhận thêm bất kỳ thông tin nào về các chuỗi con, chẳng hạn như vị trí của chúng. Những người cần thêm thông tin về trận đấu nên cân nhắc sử dụng các chức năng bên dưới

Sử dụng <?php 54 và <?php 55

Bạn có thể sử dụng hàm PHP

<?php
54 để lấy vị trí xuất hiện đầu tiên của chuỗi con trong một chuỗi. Hàm sẽ trả về
<?php
57 nếu không tìm thấy chuỗi con

Khi bạn sử dụng

<?php
54 để kiểm tra chuỗi con, hãy đảm bảo rằng bạn sử dụng toán tử bất đẳng thức nghiêm ngặt. Điều này là do vị trí được trả về bởi
<?php
54 bắt đầu bằng 0 và 0 cũng có thể tương đương với
<?php
57. Sử dụng kiểm tra bằng thông thường sẽ cho bạn phủ định sai nếu chuỗi con ở ngay đầu chuỗi chính

Dưới đây là một số ví dụ về

<?php
54

1
<?php
2
3
3
9
4
5
$sentence = "Dolphins and Elephants are intelligent animals.";
2
6
$sentence = "Dolphins and Elephants are intelligent animals.";
4
<?php
0
<?php
1
<?php
2
$sentence = "Dolphins and Elephants are intelligent animals.";
8
<?php
4
<?php
5
<?php
7
4
2
<?php
9
4
4
2
1
4
6
2
3
4
8
2
4
<?php
1
2
6
5
2
2
8
3
0
5
5
3
2
5
7
3
3
4
6
if(str_contains($sentence, "Elephants")) {
0
if(str_contains($sentence, "Elephants")) {
1
if(str_contains($sentence, "Elephants")) {
2
<?php
1
if(str_contains($sentence, "Elephants")) {
4
if(str_contains($sentence, "Elephants")) {
5
if(str_contains($sentence, "Elephants")) {
6
if(str_contains($sentence, "Elephants")) {
7
3
4

Như bạn có thể thấy trong ví dụ trên, Angela không ở đầu câu của chúng ta, vì vậy nó sẽ có một vị trí khác 0 có giá trị là

<?php
48

Mặt khác, Amy đúng ở đầu và vị trí 0 của nó được đánh giá là sai, mặc dù nó tồn tại trong chuỗi. Do đó, hãy luôn đảm bảo rằng bạn đánh giá giá trị của

<?php
54 với
<?php
64 vì không có cách nào để biết vị trí của một chuỗi con khi xử lý các chuỗi trong thực tế

Đôi khi, bạn có thể cần thực hiện việc kiểm tra chuỗi con này trong chuỗi không phân biệt chữ hoa chữ thường. Trong trường hợp đó, bạn chỉ cần sử dụng hàm

<?php
55 trong PHP. Nó hoạt động chính xác như
<?php
54 nhưng làm cho tìm kiếm không phân biệt chữ hoa chữ thường

1
<?php
2
3
6
3
4
5
___
6
6
6
24_______8
<?php
0
<?php
1
<?php
2
<?php
4
<?php
3
<?php
5
    echo 'Elephants are intelligent.';
5
<?php
7
<?php
1____
<?php
9____
2
1_
    echo 'Elephants are intelligent.';
9_______

Sử dụng <?php 67 và <?php 68

Theo mặc định, hàm

<?php
67 trả về một phần của chuỗi chính, bắt đầu từ chuỗi con và đi đến cuối chuỗi chính. Nó sẽ trả về
<?php
57 nếu chuỗi con không tồn tại bên trong chuỗi chính

Chúng ta có thể sử dụng thông tin này để kiểm tra sự tồn tại của một chuỗi con bên trong một chuỗi. Tất cả những gì chúng ta phải làm là đánh giá giá trị được trả về bởi

<?php
67 và kiểm tra xem nó có phải là
<?php
57 hay không. Cũng giống như lần trước, chúng ta sẽ sử dụng toán tử bất đẳng thức nghiêm ngặt
<?php
64 để kiểm tra

Dưới đây là một số ví dụ

1
<?php
2
3
<?php
07
4
<?php
09
5
6
<?php
12
<?php
0
<?php
14
<?php
2
<?php
1
<?php
4
<?php
18
<?php
5
<?php
7
<?php
21
<?php
9
<?php
23
2
1
4
6
2
3
<?php
27
2
4
<?php
1
2
6
<?php
31
2
8
3
0
<?php
34
3
2
<?php
36
3
3
4
6
if(str_contains($sentence, "Elephants")) {
0
<?php
40
if(str_contains($sentence, "Elephants")) {
2
<?php
1
if(str_contains($sentence, "Elephants")) {
4
<?php
44
if(str_contains($sentence, "Elephants")) {
6
if(str_contains($sentence, "Elephants")) {
7
3
4

Bạn có thể sử dụng

<?php
68 thay cho
<?php
67 để làm cho tìm kiếm không phân biệt chữ hoa chữ thường. Tất cả các hành vi khác của
<?php
68 vẫn giữ nguyên

Suy nghĩ cuối cùng

Trong thủ thuật nhanh này, chúng ta đã tìm hiểu ba cách khác nhau để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong PHP. Bạn có thể sử dụng bất kỳ chức năng nào trong số này tùy thuộc vào thông tin bạn cần từ chuỗi. Sử dụng các hàm PHP 8 mới sẽ cho phép bạn bỏ qua bất kỳ loại kiểm tra nghiêm ngặt nào, nhưng bạn sẽ cần sử dụng các hàm cũ hơn nếu bạn muốn biết vị trí của chuỗi con hoặc lấy một phần của chuỗi chính làm giá trị trả về