Hướng dẫn dùng str contains trong PHP
Hàm Trong đó: Hàm VD1: Với chuỗi cần tìm là chuỗi rỗng. Chú ý: Nếu như bạn kiểm tra một chuỗi trống VD2: Ví dụ với chữ hoa thường. Như vậy: Hàm Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail! Bài Viết Mới
answer 6035 Bạn có thể sử dụng
Lưu ý rằng việc sử
dụng 6035 hữu ích 5 bình luận chia sẻ answer 521 Bạn có thể sử dụng các biểu thức thông thường, sẽ tốt hơn khi kết hợp từ so với strpose như được đề cập bởi những người dùng khác, nó cũng sẽ trả về đúng cho các chuỗi như giá vé, chăm sóc, nhìn chằm chằm, v.v ... Điều này có thể tránh được trong biểu thức thông thường bằng cách sử dụng các ranh giới từ. Một kết hợp đơn giản cho có thể trông giống như thế này:
Về mặt hiệu suất, strpose nhanh hơn khoảng ba lần và trong tâm trí,
khi tôi thực hiện một triệu so sánh cùng một lúc, phải mất Chỉnh sửa: Để tìm kiếm bất kỳ phần nào của chuỗi, không chỉ từng chữ, tôi khuyên bạn nên sử dụng một biểu thức thông thường như
Phần Bây giờ điều này có thể khá rắc rối trong một số trường hợp vì chuỗi $ search không được vệ sinh trong mọi trường hợp, ý tôi là, nó có thể không vượt qua kiểm tra trong một số trường hợp như Ngoài ra, đây là một công cụ tuyệt vời để kiểm tra và xem giải thích về các biểu thức chính quy khác nhau Regex101 Để kết hợp cả hai bộ chức năng thành một chức năng đa mục đích duy nhất (bao gồm cả độ nhạy trường hợp có thể lựa chọn), bạn có thể sử dụng một cái gì đó như thế này:
521 hữu ích 5 bình luận chia sẻ answer 225 Đây là một chức năng tiện ích nhỏ hữu ích trong các tình huống như thế này
225 hữu ích 5 bình luận chia sẻ answer 125 Mặc dù hầu hết các câu trả lời này sẽ cho bạn biết nếu một chuỗi con xuất hiện trong chuỗi của bạn, đó thường không phải là điều bạn muốn nếu bạn đang tìm kiếm một từ cụ thể và không phải là một chuỗi con . Có gì khác biệt? Chất nền có thể xuất hiện trong các từ khác:
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ừ (
Phương
pháp này không có cùng dương tính giả được ghi nhận ở trên, nhưng nó có một số trường hợp cạnh của chính nó. Ranh giới từ phù hợp trên các ký tự không-word (
Nếu bạn muốn bất cứ điều gì chính xác hơn điều này, bạn sẽ phải bắt đầu thực hiện phân tích cú pháp tiếng Anh và đó là một con giun khá lớn (và dù sao cũng sử dụng đúng cú pháp, không phải lúc nào cũng được đưa ra). 125 hữu ích 5 bình luận chia sẻ answer 107 Để xác định xem một chuỗi có chứa một chuỗi khác hay không, bạn có thể sử dụng hàm PHP strpose () .
THẬN TRỌNG: Nếu kim bạn đang tìm kiếm ở đầu đống cỏ khô, nó sẽ trả về vị trí 0, nếu bạn thực hiện một phép Một Một 107 hữu ích 1 bình luận chia sẻ answer 58 Nhìn vào
58 hữu ích 0 bình luận chia sẻ answer 57 Sử dụng 57 hữu ích 3 bình luận chia sẻ answer 42 Nhận xét ngang hàng với Samoody và Lego Stormtroopr. Nếu bạn đang tìm kiếm một thuật toán PHP để xếp hạng kết quả tìm kiếm dựa trên mức độ gần gũi / mức độ liên quan của nhiều từ thì đây là cách nhanh chóng và dễ dàng để tạo kết quả tìm kiếm chỉ với PHP: Các vấn đề với các phương pháp tìm kiếm boolean khác như
Phương pháp PHP dựa trên Mô hình không gian vectơ và tf-idf (thuật ngữ tần số tài liệu nghịch đảo tần số): Nghe có vẻ khó khăn nhưng dễ dàng đáng ngạc nhiên. Nếu chúng ta muốn tìm kiếm nhiều từ trong một chuỗi, vấn đề cốt lõi là làm thế nào chúng ta gán trọng số cho từng từ đó? Nếu chúng ta có thể cân nhắc các thuật ngữ trong một chuỗi dựa trên mức độ đại diện của toàn bộ chuỗi, chúng ta có thể sắp xếp các kết quả của mình theo các chuỗi phù hợp nhất với truy vấn. Đây là ý tưởng của mô hình không gian vectơ, không xa cách hoạt động của tìm kiếm toàn văn bản SQL:
TRƯỜNG HỢP 1 ';KẾT QUẢ
TRƯỜNG HỢP 2 ';CÁC KẾT QUẢ
TRƯỜNG HỢP 3 ';CÁC KẾT QUẢ
Có rất nhiều cải tiến được thực hiện nhưng các mô hình cung cấp một cách để nhận được kết quả tốt từ các truy vấn tự nhiên, mà không có các toán tử logic như LỢI ÍCH Tùy chọn loại bỏ sự dư thừa trước khi tìm kiếm các từ
1. Bình thường hóa
2. Loại bỏ mật khẩu
3. Thay thế từ điển
TÀI NGUYÊN
42 hữu ích 0 bình luận chia sẻ answer 41 Sử dụng kết hợp không phân biệt chữ hoa chữ thường bằng cách sử dụng
41 hữu ích 0 bình luận chia sẻ answer 40 Nếu bạn muốn tránh vấn đề "chim ưng" và "sự thật", bạn có thể sử dụng lớp nền:
Nó chậm hơn một chút so với strpose nhưng nó tránh được các vấn đề so sánh. 40 hữu ích 0 bình luận chia sẻ answer 31 Một tùy chọn khác là sử dụng hàm strstr () . Cái gì đó như:
Điểm cần lưu ý: Hàm strstr () phân biệt chữ hoa chữ thường. Đối với tìm kiếm không phân biệt chữ hoa chữ thường, hãy sử dụng hàm stristr () . 31 hữu ích 2 bình luận chia sẻ answer 28 Tôi là một chút ấn tượng rằng không ai trong số các câu trả lời ở đây là sử dụng
Về cơ bản, nếu bạn gặp khó khăn khi tìm từ có ký tự cụ thể cho một số ngôn ngữ , chẳng hạn như tiếng Đức, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, v.v. (ví dụ:
ä , é , ô , ç , º , ñ ), bạn có thể muốn đi trước Các chức năng với
Nếu bạn không thể đảm bảo rằng tất cả dữ liệu của bạn là 100% trong UTF-8 , bạn có thể muốn sử dụng các Một bài báo tốt để hiểu tại sao Các nhà phát triển phần mềm Absolute tối thiểu Mỗi Tuyệt đối, tích cực Phải Biết Về Unicode và tự Sets (Không Lý Do!) Bởi Joel Spolsky . 28 hữu ích 0 bình luận chia sẻ answer 27
27 hữu ích 2 bình luận chia sẻ answer 23 Chức năng dưới đây cũng hoạt động và không phụ thuộc vào bất kỳ chức năng nào khác; nó chỉ sử dụng thao tác chuỗi PHP gốc. Cá nhân, tôi không khuyên bạn điều này, nhưng bạn có thể thấy nó hoạt động như thế nào:
Kiểm tra:
23 hữu ích 4 bình luận chia sẻ answer 22 Trong PHP, cách tốt nhất để xác minh xem một chuỗi có chứa một chuỗi con nhất định hay không, là sử dụng hàm trợ giúp đơn giản như thế này:
Giải trình:
Đầu ra:
22 hữu ích 1 bình luận chia sẻ answer 21 Tôi đã có một số rắc rối với điều này, và cuối cùng tôi đã chọn để tạo ra giải pháp của riêng tôi. Không sử dụng công cụ biểu thức chính quy :
Bạn có thể nhận thấy rằng các giải pháp trước đây không phải là câu trả lời cho từ đang được sử dụng làm tiền tố cho từ khác. Để sử dụng ví dụ của bạn:
Với các mẫu ở trên, cả 21 hữu ích 3 bình luận chia sẻ answer 21 Bạn có thể sử dụng
Không sử dụng chức năng sẵn có:
21 hữu ích 1 bình luận chia sẻ answer 16 Một tùy chọn khác để tìm sự xuất hiện của một từ trong chuỗi bằng strstr () và stristr () giống như sau:
16 hữu ích 1 bình luận chia sẻ answer 14 Nó có thể được thực hiện theo ba cách khác nhau:
1- stristr ()
2- strpose ()
3- preg_match ()
14 hữu ích 1 bình luận chia sẻ answer 14 Phiên bản tay ngắn
14 hữu ích 1 bình luận chia sẻ answer 14 Để tìm một "từ", thay vì sự xuất hiện của một loạt các chữ cái trong thực tế có thể là một phần của một từ khác, sau đây sẽ là một giải pháp tốt.
14 hữu ích 1 bình luận chia sẻ answer 13 Bạn nên sử dụng định dạng Không phân biệt chữ hoa chữ thường, vì vậy nếu giá trị được nhập nằm trong
Ở đây, các sọc tìm thấy kim trong heystack mà không cần xem xét trường hợp (nhỏ / mũ). Mẫu PHPCode có đầu ra 13 hữu ích 1 bình luận chia sẻ answer 13 Rất nhiều câu trả lời sử dụng
Để kiểm tra nếu không có, thêm
13 hữu ích 1 bình luận chia sẻ answer 12 Có lẽ bạn có thể sử dụng một cái gì đó như thế này:
12 hữu ích 0 bình luận chia sẻ answer 11 Không sử dụng
11 hữu ích 0 bình luận chia sẻ answer 10 Nếu bạn muốn kiểm tra xem chuỗi có chứa một số từ cụ thể không, bạn có thể thực hiện:
Điều này rất hữu ích để tránh thư rác khi gửi email chẳng hạn. 10 hữu ích 0 bình luận chia sẻ answer 9 Bạn cần sử dụng các toán tử giống hệt / không giống nhau vì strpose có thể trả về 0 làm giá trị chỉ mục. Nếu bạn thích các toán tử ternary, hãy cân nhắc sử dụng các thao tác sau (có vẻ hơi ngược tôi sẽ thừa nhận):
9 hữu ích 0 bình luận chia sẻ answer 9 Hàm strpose hoạt động tốt, nhưng nếu bạn muốn
Ví dụ,
Tìm vị trí xuất hiện đầu tiên của chuỗi con không phân biệt chữ hoa chữ thường trong chuỗi. Nếu từ không tồn tại trong chuỗi thì nó sẽ trả về false nếu không nó sẽ trả về vị trí của từ. 9 hữu ích 0 bình luận chia sẻ answer 8
Điều này có nghĩa là chuỗi phải được giải quyết thành các từ (xem ghi chú bên dưới). Một cách để làm điều này và chỉ định các dấu phân cách là sử dụng
Chạy cho
Lưu ý: Ở đây chúng tôi không có nghĩa là từ cho mỗi chuỗi ký hiệu. Một định nghĩa thực tế của từ theo nghĩa là công cụ biểu thức chính quy PCRE, trong đó các từ là các từ chỉ bao gồm các ký tự từ, được phân tách bằng các ký tự không phải từ.
8 hữu ích 0 bình luận chia sẻ answer 7 Một chuỗi có thể được kiểm tra với chức năng dưới đây:
7 hữu ích 2 bình luận chia sẻ |