Đô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
- Cách kiểm tra xem chuỗi có chứa chuỗi con không
- 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
Sự 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 hướng dẫn ngắn này, chúng ta xem xét cách kiểm tra xem một chuỗi PHP có chứa chuỗi con hay không. Chúng tôi cũng xem xét các phương pháp thao tác chuỗi có liên quan khác
Tuy nhiên, trong trường hợp bạn ở đây chỉ vì giải pháp, hãy sử dụng liên kết này
Mục lục - Chuỗi PHP chứa
- Tại sao phải kiểm tra xem chuỗi PHP có chứa chuỗi con không?
- Sử dụng 08
- Sử dụng 09, 20 và 21
- Chuỗi PHP chứa - Hạn chế và Hãy cẩn thận
- Các khái niệm liên quan khác
Tại sao phải kiểm tra xem chuỗi PHP có chứa chuỗi con không?
Trong khi viết mã, một thực tế phổ biến là kiểm tra xem một chuỗi có chứa chuỗi con hay không. Sau đó, mỗi ngôn ngữ đi kèm với một vài phương pháp có thể được sử dụng để làm điều tương tự
Chuỗi chứa [str_contains] là phương thức được sử dụng phổ biến nhất trong PHP. Tuy nhiên, các phương pháp bạn chọn sẽ được quyết định dựa trên các trường hợp sử dụng của bạn
Nếu bạn đang muốn kiểm tra xem một chuỗi có chứa chuỗi con hay không, bạn có thể sử dụng hàm str_contains. Tuy nhiên, nếu bạn muốn kiểm tra xem một chuỗi con có tồn tại hay không và để trả về chỉ mục của nó, thì có thể sử dụng các phương thức stripos và strpos
Ngoài ra, chúng ta hãy xem xét tất cả các phương pháp này một cách sâu sắc
Sử dụng 08
str_contains là một chức năng mới được giới thiệu trong PHP 8. Phương thức này được sử dụng để kiểm tra xem một chuỗi PHP có chứa một chuỗi con hay không
Hàm kiểm tra chuỗi và trả về giá trị boolean true trong trường hợp nó tồn tại và sai nếu ngược lại. Tuy nhiên, hãy nhớ rằng str_contains phân biệt chữ hoa chữ thường. Đảm bảo rằng chuỗi con được sử dụng để tìm kiếm ở đúng trường hợp hoặc bạn có thể sử dụng phương thức strtolower[]
Cú pháp của PHP 23
6Thông số
24 - Bắt buộc, chuỗi gốc mà bạn định tìm kiếm25 - Bắt buộc, chuỗi con mà bạn đang muốn kiểm tra xem chuỗi PHP có chứaMã & Giải thích
0str_contains trả về giá trị boolean true hoặc false và do đó thường được đặt bên trong câu lệnh có điều kiện
Như đã nói ở trên, phương thức str_contains phân biệt chữ hoa chữ thường, đây là một ví dụ tương tự
Để tránh những trường hợp như vậy, bạn có thể đảm bảo rằng chuỗi con được sử dụng để tìm kiếm ở đúng trường hợp hoặc bạn có thể sử dụng phương thức strtolower[]
Sử dụng 09, 20 và 21
Phương thức này dùng để kiểm tra và trả về chỉ số của chuỗi con trong trường hợp chuỗi PHP chứa nó. Các phương pháp sau đây có thể được sử dụng để đạt được điều này
Phương thức stripos kiểm tra xem một chuỗi PHP có chứa một chuỗi con hay không và trả về chỉ mục của lần xuất hiện đầu tiên của chuỗi con
Tuy nhiên, phương thức stripos không phân biệt chữ hoa chữ thường và nếu bạn đang muốn kiểm tra phân biệt chữ hoa chữ thường xem một chuỗi PHP có chứa một chuỗi con hay không, bạn có thể sử dụng các phương thức strpos
Cuối cùng, không giống như các phương thức trước đó, strrpos trả về lần xuất hiện cuối cùng của chuỗi con
Cú pháp của 09, 20 và 21
Word Found at Position: 16
7Thông số.
24 - Bắt buộc, chuỗi gốc mà bạn muốn tìm kiếm25 - Bắt buộc, chuỗi con mà bạn đang muốn kiểm tra xem chuỗi đó có chứaWord Found at Position: 16
74 - Tùy chọn, cụ thể nơi bắt đầu tìm kiếm chuỗi contrả lại
Khi được sử dụng để kiểm tra xem một chuỗi PHP có chứa một chuỗi con hay không, cả ba phương thức đều trả về một chỉ mục trong khoảng từ 0 đến n-1 và trả về false nếu không tìm thấy chuỗi con
Tuy nhiên, do 0 cũng là một giá trị sai, hãy nhớ sử dụng toán tử giống hoặc không giống nhau === hoặc. == và không bằng toán tử == vì 0 cũng sẽ được coi là sai
Mã & Giải thích
1Vì stripos không phân biệt chữ hoa chữ thường, nên nó không trả về giá trị sai khi được sử dụng để kiểm tra xem chuỗi PHP có chứa chuỗi con 'Top' hay không. Tuy nhiên, đây không phải là trường hợp khi strpos hoặc strrpos được sử dụng.Bây giờ, hãy xem xét trường hợp chỉ số bằng 0.
______32
Như bạn có thể thấy ban đầu. = toán tử coi 0 là sai và trả về đầu ra âm. Đây là lý do tại sao điều quan trọng là sử dụng các toán tử giống hệt nhau trong khi sử dụng các phương thức này