فیلتر کلمات ناپسند و غیراخلاقی با PHP

فیلتر کلمات ناپسند و غیراخلاقی با PHP

فیلتر کلمات ناپسند با PHP – در خیلی از مواقع نظرات منفی و ناپسندی را از کاربران دریافت می کنیم که در آن از کلمات غیراخلاقی استفاده کرده اند .

بدین ترتیب با استفاده از PHP می توانیم این کلمات را فیلتر کرده و نمایش دهیم یا آن ها را تفکیک کنیم .

افزودن کتابخانه Persian Swear Words

می تونید این کتابخانه را از این آدرس دریافت کنید . و در پروژه خود استفاده کنید همچنین می توانید از فایل پایین مطلب هم استفاده کنید . این کتابخانه به شما کمک خواهد کرد که بتوانید تشخیص دهید آیا کلمه مورد نظر ناپسند می باشد یا خیر که متود های کاربردی مختلفی دارد .


نمونه گیری از کلاس

$persianswear = new PersianSwear();


متود is_bad

ابتدا رشته را به آن می دهید و در صورتی که کلمه ناپسند باشد یا خیر مقدار boolean برمی گرداند .

$persianswear->is_bad('الاغ')


متود remove_word

در صورتی که فکر می کنید کلمه ای اشتباهی به عنوان یک کلمه ناپسند شناخته شده است می توانید آن را حذف کنید که دیگر کلمه ناپسندی شناخته نشود .

$persianswear->remove_word('الاغ');


متود add_word

این متود مخالف remove_word می باشد در صورتی که کلمه ای ناپسند به عنوان کلمه ای بد شناخته نشود با این متود می توانید آن را به لیست اضافه کنید .

$persianswear->add_word('بیشعوری');


متود has_swear

در صورتی که در بخشی از جمله کلمه ای بی ادبی باشد آن جمله ناپسند شناخته می شود .

$persianswear->has_swear('آقای x آدم دیوانه ای است')


متود filter_words

بخشی های که در جمله ناپسند باشند را با * فیلتر می کند . البته پیشنهاد می شود از این متود و has_swear استفاده نشود که در پایین مشاهده می کنید دلیل آن را از آن جایی که خر کلمه ای ناپسندی است آن را با خروس اشتباه می گیرد برای حل این مشکل می توانید از مینی پروژه زیر استفاده کنید .

echo $persianswear->filter_words('خروس سحر خیز است'); // **وس سحر خیز است


یک مینی پروژه کاربردی با این کتابخانه

یک بخش ثبت نظر خیلی ساده ای را با این کتابخانه می سازیم .


index.html

<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <title>Rapidcode.iR - سورس کد</title>
    <link rel="stylesheet" href="static/css/main.css">
</head>
<body>
    <div class="container">
        <a id="introduce" href="https://rapidcode.ir" target="_blank">رپید کد • کتابخانه مجازی برنامه نویسان</a>

       <form action="process.php" method="post">
           <label for="comment">نظر شما :</label>
           <textarea name="comment" id="comment" cols="40" rows="10"></textarea><br>
           <input type="submit" value="ثبت">
       </form> 
    </div>
</body>
</html>


کمی css با main.css

label[for="comment"]{
    vertical-align: top;
}

input[type="submit"]{
    width: 240px;
    margin-right: 40px;
}


فایل process.php

در این فایل اطلاعات وارد شده را بررسی کرده و در صورتی که موردی را یافتیم آن را با * فیلتر می کنیم .

<?php

require_once "swear.filter/PersianSwear.php";
$persianswear = new PersianSwear();

$contents = @$_POST['comment'];
$contents = explode(" ",$contents);

$filtered_content = "";

foreach ($contents as $content) {
    $tmp_content = $persianswear->is_bad($content) ? str_repeat("*" , strlen($content) / 2) : $content;
    $filtered_content .= " {$tmp_content}";
}

trim($filtered_content);
$contents = join(" " , $contents);

echo "<h2 dir=\"rtl\">$contents ↓</h2>";
echo "<h2 dir=\"rtl\">$filtered_content</h2>";

?>


خروجی برنامه

تفکیک کلمات ناپسند با PHP

دانلود برنامه فیلتر کلمات ناپسند با PHP

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

لیست نظرات

  1. محمود+رنجبر+نورآبادی
    محمود+رنجبر+نورآبادی

    سلام مهندس باقری عزیز من این کلاس رو به خاطر مشکلی که داشت قبلا تغییر دادم و برای امیر شکری که اون رو نوشته فرستادم وقتی از تابع فیلترش استفاده میکنی واژه هایی مثل کسی کسیکه کسانیکه کسوت کسری رو به خاطر وجود واژه کَس خراب میکنه و اصلا جالب نیست

    24 آذر 1401 | 17:32:26
  • حسین باقری
    حسین باقری

    می تونید اون واژه رو حذف کنید که در مسیر swear.filter/data.json وجود داره

    24 آذر 1401 | 19:19:25
contact us