Hướng dẫn check if string contains multiple substrings php - kiểm tra xem chuỗi có chứa nhiều chuỗi con php không

STRPOS tìm kiếm chuỗi chính xác bạn vượt qua dưới dạng tham số thứ hai. Nếu bạn muốn kiểm tra nhiều từ, bạn phải dùng đến các công cụ khác nhau

Biểu cảm thường xuyên

if(preg_match("/\b(bad|naughty)\b/", $data)){
    echo "Found";
}

(preg_match return 1 Nếu có một trận đấu trong chuỗi, 0 nếu không).

Nhiều cuộc gọi str_pos

if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
    echo "Found";
}

phát nổ

if (count(array_intersect(explode(' ', $data),array('bad','naugthy')))) {
    echo "Found";
}

Giải pháp ưa thích, đối với tôi, nên là đầu tiên. Rõ ràng, có thể không quá hiệu quả do sử dụng regex nhưng nó không báo cáo dương tính giả và, ví dụ, nó sẽ không kích hoạt tiếng vang nếu chuỗi chứa từ cầu lông

Biểu thức chính quy có thể trở thành gánh nặng để tạo ra nếu nó nhiều từ (không có gì bạn không thể giải quyết bằng một dòng PHP mặc dù $regex = '/\b('.join('|', $badWords).')\b/';

Cái thứ hai là thẳng về phía trước nhưng không thể phân biệt xấu với cầu lông.

Phần thứ ba phân chia chuỗi bằng các từ nếu chúng được phân tách bằng một không gian, một tab char sẽ làm hỏng kết quả của bạn.

if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
    echo "Found";
}
6 với tôi không quan tâm đến việc chuỗi đầu vào có chứa chữ cái viết hoa, chữ cái thấp hơn hay hỗn hợp hay không.

Đầu ra của

if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
    echo "Found";
}
7 sẽ là 1 một lần bất kỳ từ nào khớp với chuỗi cho một mẫu đã cho
if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
    echo "Found";
}
8. Trong ví dụ của chúng tôi ở đây, nó phù hợp với câu đố Word do đó trả lại 1PHP string contains multiple words, therefore, assuming that you are already aware of a single word search within the string. Therefore first we will see how to check if a string contains any word in short.

Vâng, nó có lợi.

Vâng, nó rất hữu ích, tuy nhiên cần có thêm thông tin.

$searchText = "QuizCure";

$givenString = "Programming articles listed on QuizCure belongs to java, python, PHP and more";
 

if(strpos($givenString, $searchText) !== false){
    echo "QuizCure text Found!";
} else{
    echo "QuizCure text Not Found!";
}

Nó không hữu ích, vì vậy không. QuizCure text Found!

Giải trình:

  • Phản hồi (tùy chọn) Vui lòng cung cấp thêm chi tiết về lựa chọn bạn đã chọn ở trên để chúng tôi có thể phân tích các nhận xét và ý tưởng sâu sắc và thực hiện các bước cần thiết cho chủ đề này. Cảm ơn bạn
  • Gửi phản hồi
  • Có một số cách để xác định xem một chuỗi nhất định có chứa một từ cụ thể trong PHP không. Nó phụ thuộc vào bối cảnh chương trình chúng tôi đang giải quyết.
  • Vì chúng tôi ở đây để kiểm tra xem một chuỗi PHP có chứa nhiều từ, do đó, giả sử rằng bạn đã biết về một tìm kiếm từ duy nhất trong chuỗi. Do đó, trước tiên chúng ta sẽ xem cách kiểm tra xem một chuỗi có chứa bất kỳ từ nào ngắn gọn không.

Một trong những cách tốt nhất để kiểm tra một từ duy nhất bằng cách sử dụng chức năng PHP ​​strpos


  • Thí dụ:
  • Kết quả: Văn bản đố được tìm thấy!
  • Strpos được sử dụng để kiểm tra vị trí của sự tồn tại đầu tiên của một từ tìm kiếm

Strpos nhạy cảm trường hợp. Do đó, nó sẽ chỉ phù hợp với các chữ cái tương tự.

Trong ví dụ của chúng tôi ở trên, chúng tôi có SearchText là QUIZCURE và chuỗi đã cho cũng chứa cùng một tập hợp các kết hợp trên và chữ thường của câu đố từ.

if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
    echo "Found";
}
3

  • if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
        echo "Found";
    }
    
    0 Trả về sai nếu nó không tìm thấy vị trí SearchText trong chuỗi đã cho. Do đó, tôi đã sử dụng các tiêu chí
    if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
        echo "Found";
    }
    
    1 để kiểm tra.
  • Bây giờ, hãy để khám phá cách chúng ta có thể kiểm tra chuỗi chứa nhiều hơn một từ trong một chuỗi đã cho theo các cách sau
  • Kiểm tra xem chuỗi chứa nhiều từ bằng hàm preg_match
  • Kiểm tra nhiều khớp không phân biệt chữ hoa case bằng hàm preg_match
  • Phản hồi: Đầu vào của bạn có giá trị đối với chúng tôi. Vui lòng cung cấp phản hồi về bài viết này.
  • Hàm
    if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
        echo "Found";
    }
    
    2 được sử dụng để thực hiện tìm kiếm cho các mẫu biểu thức thông thường trên các chuỗi truyền.
    1 => If pattern matched
    0=> If pattern doesn’t meet
    False => Once failed

Mục tiêu của chúng tôi ở đây là tìm các biểu thức thường xuyên để khớp với nhiều từ trên một văn bản nhất định. Hãy khám phá trong mã ví dụ sau

$pattern = "(Quizcure|programming|java)"; 
$givenString = "Programming articles listed on Quizcure belongs to python, java, PHP and more";
var_dump(preg_match($pattern, $givenString));
  

Kết quả: int (1) int(1)

Giải trình:

  • Chúng ta cần xây dựng một biểu thức chính quy cho nhiều từ bằng cách tách bằng cách sử dụng | Biểu tượng như
    if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
        echo "Found";
    }
    
    4
  • Do đó, nó trả về 1 nếu bất kỳ mẫu từ nào khớp trong chuỗi đã cho. Trong trường hợp của chúng tôi, tất cả các từ được sử dụng là một phần của một chuỗi nhất định.

Case1: Một trong ba từ chỉ phù hợp

$pattern = "(Quizcure|abc|xyz)"; 
$givenString = "Programming articles listed on Quizcure belongs to python, java, PHP and more";
 
var_dump(preg_match($pattern, $givenString));

Result: int(1)

Trường hợp 2: Không phù hợp

$pattern = "(demo|abc|xyz)"; 
$givenString = "Programming articles listed on Quizcure belongs to python, java,  PHP and more";
 
var_dump(preg_match($pattern, $givenString));

Result: int(0)

Trong ví dụ trước, chúng tôi đã tìm hiểu về nhiều từ khớp bằng cách sử dụng regex. Đó là một hoạt động nhạy cảm trường hợp.

Bây giờ chúng ta sẽ thấy một cuộc biểu tình phù hợp với nhiều từ không nhạy cảm.

$pattern = "/(quizcure|abc|java)/i"; 

$givenString = "Programming articles listed on QuizCure belongs to java, python, PHP and more";
 
var_dump(preg_match($pattern, $givenString));

Kết quả: int (1) int(1)

Giải trình:

  • Chúng ta cần xây dựng một biểu thức chính quy cho nhiều từ bằng cách tách bằng cách sử dụng | Biểu tượng như
    if (strpos($data, 'bad')!==false or strpos($data, 'naughty')!== false) {
        echo "Found";
    }
    
    4
  • Do đó, nó trả về 1 nếu bất kỳ mẫu từ nào khớp trong chuỗi đã cho. Trong trường hợp của chúng tôi, tất cả các từ được sử dụng là một phần của một chuỗi nhất định.
  • Case1: Một trong ba từ chỉ phù hợp

Trường hợp 2: Không phù hợp

Trong ví dụ trước, chúng tôi đã tìm hiểu về nhiều từ khớp bằng cách sử dụng regex. Đó là một hoạt động nhạy cảm trường hợp.

Bây giờ chúng ta sẽ thấy một cuộc biểu tình phù hợp với nhiều từ không nhạy cảm.

Giải thích chương trình:

Gửi phản hồi