09/10/2018, 22:51

Giúp mình giải quyết vấn đề này với !

Mình đang tìm 1 function search trong PHP nhưng tìm mãi không thấy !
Nội dung nó như thế này, giả sử mình có 1 chuỗi như sau :
$content = "Xin mời các bạn ghé thăm ***x.com";

Giờ mình muốn trước khi 1 người nào đó gởi bài thì máy sẽ search trong nội dung bài viết có chuỗi "***x.com" hay không , nếu có thì sẽ không cho gởi !

Vậy có hàm nào để search $content coi có 1 chuỗi đại loại $search="***x.com" hay không ?

Nếu có thì $content = 1, nếu không thì $content = 0 ...

Giúp mình với nhé !
viết 01:05 ngày 10/10/2018
Bạn có thể dùng hàm substr_count để đếm xem có bao nhiêu chuỗi con xuất hiện trong chuỗi mẹ
Cú pháp
PHP Code:
int substr_count string haystackstring needle ***91;, int offset ***91;, int length***93;***93; ) 
Trong đó haystack là chuỗi mẹ chứa nội dung bài viết, còn needle là chuỗi con cần tìm (đếm). 2 tham số sau không cần điền vào
vd
PHP Code:
$content "Day la mot vd ve ham substr_count";
$search substr_count($content,'vd');
if (
$search)
{
$found 1;
// xu ly cong viec
}
else
{
$found 0;
// lam dieu can phai lam

Chúc thành công !
Còn nhiều cách khác, nhưng tôi thấy cách này là dễ thực hiện theo yêu cầu nhất
CMvn viết 00:54 ngày 10/10/2018
To Mitavn : Cái hàm này lại phát sinh ra thêm 1 vấn đề nữa Mita à ...
Ví dụ : $content của mình thế này

$content = "Xin moi ban ghe tham www.***x.com"

chứ không phải là :
$content = "Xin moi ban ghe tham ***x.com"

Khi đó nếu search $content :
$search = substr_count($content,'***x.com');

thì nó vẫn báo là không tìm thấy ????
viết 01:04 ngày 10/10/2018
Năng động lên đi bạn,
Vấn đề phát sinh thì phải giải quyết nó chứ
Hoặc là bạn search thêm một chuỗi nữa - hoặc là bạn tạo một array các ký tự cần lọc bao gồm http://www.***.com , www.***.com, ***.com , abc.***.com ... sau đó lặp đến số phần tử của mảng - 1 để search tuần tự ! ...
Solutions là ở bạn, mình chỉ cung cấp công cụ cần thiết cho bạn giải quyết vấn đề thôi .
p/s : Mình không biết bạn đang code về cái gì nhưng nếu ràng buộc như thế rất khó và speed sẽ slow đi, bạn nên xây dựng một hàm format_input để lọc dữ liệu nhập vào theo ý của mình, nếu không thích có chuỗi abcdesseeraf nào đó trong inputdata thì bạn dùng hàm str_replace để thay nó bằng một từ khác. Cách này là cách lọc badwords khá hay đó, và dùng cách này bạn có thể linh động thêm bớt các từ không muốn input vào db + speed của trang web sẽ nhanh hơn !
Vài lời góp ý cùng bạn
Thanh duc viết 01:05 ngày 10/10/2018
$pos = strpos($content,"***.com");
if ($pos === true) {
echo "moi tao coi *** a`";
} else {
echo "ko co *** thi ai them vao";
}
Bài liên quan
0