Đô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 Show
Hướng dẫn này sẽ giải thích
Sử dụng hàm strrpos() để kiểm tra xem chuỗi có chứa chuỗi con khôngPhươ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
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
ví dụ 2 đầu ra
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 conPhươ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
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
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 conThí 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ỗiKhi 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ụ,
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ậnNế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 rastring(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
Sử dụng các hàm mới trong PHP 8Ba 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
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
121 22 23 24 25 26 27 28 <?php
130 31 32 33 34 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
53Cá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 55Bạ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 conKhi 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ínhDưới đây là một số ví dụ về <?php
541 <?php
2 3 39 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
742 <?php
944 21 46 23 48 24 <?php
126 52 28 30 55 32 57 33 46 if(str_contains($sentence, "Elephants")) {0 if(str_contains($sentence, "Elephants")) {1 if(str_contains($sentence, "Elephants")) {2 <?php
1if(str_contains($sentence, "Elephants")) {4 if(str_contains($sentence, "Elephants")) {5 if(str_contains($sentence, "Elephants")) {6 if(str_contains($sentence, "Elephants")) {7 34 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
48Mặ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ường1 <?php
2 3 63 4 5___ 66 624_______8 <?php
0<?php
1<?php
2<?php
4<?php
3<?php
5echo 'Elephants are intelligent.';5 <?php
7<?php
1____<?php
9____21_ echo 'Elephants are intelligent.';9_______ Sử dụng <?php 67 và <?php 68Theo 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ínhChú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 traDưới đây là một số ví dụ 1 <?php
2 3 <?php
074 <?php
095 6 <?php
12<?php
0<?php
14<?php
2<?php
1<?php
4<?php
18<?php
5<?php
7<?php
21<?php
9<?php
2321 46 23 <?php
2724 <?php
126 <?php
3128 30 <?php
3432 <?php
3633 46 if(str_contains($sentence, "Elephants")) {0 <?php
40if(str_contains($sentence, "Elephants")) {2 <?php
1if(str_contains($sentence, "Elephants")) {4 <?php
44if(str_contains($sentence, "Elephants")) {6 if(str_contains($sentence, "Elephants")) {7 34 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ênSuy nghĩ cuối cùngTrong 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ề |