11/18/2016

Filter dan Sensor Kata di String Menggunakan Fungsi Preg_Replace() PHP Regex

Fungsi Preg_Replace() ini digunakan untuk melakukan tugas merubah huruf (replace) atau mengkombinasikan huruf tertentu dengan huruf-huruf yang kita inginkan. Dulunya, ada juga fungsi eregi_replace, akan tetapi fungsi ini sudah dianggap deprecated alias usang oleh PHP versi-versi terbaru.

Apa manfaat dari preg_replace? contoh kecil saja yaitu untuk sensor atau filter kata-kata pada komentar, biasanya kita jumpai di forum-forum.
Nah kali ini berhubung ini juga saya pakai untuk filter komentar di web yang saya buat, jadi alangkah baiknya jika saya posting saja agar tidak lupa hehe.

Oke kita mulai tutornya, disimak ya :

buat folder sensor_kata di directory xampp -> htdocs , lalu buka text editor yang biasa anda gunakan, copy kode dibawah ini dan save dengan index.php

<style>
    .container{
        width: 400px;
        height: 200px;
        position: fixed;
        top: 50%;
        left: 50%;
        margin-top: -140px;
        margin-left: -240px;
        text-align: center;
        padding:40px;
    }
    .box{
        text-align: center;
        vertical-align: middle;
        border:3px dashed #eee;
        padding: 10px;
        margin: 5px;
    }
</style>
<div class="container">
    <div class="box">
        <form method="post" target="">
            <b>Masukkan Teks yang Akan Disensor</b><br><br> <input type="text" name="inputan"/><input type="submit" name="submit" value="cek"/>
        </form>
        <?php
        function sensorkata($text) {
            $katakotor = "anjing,babi";  //kata-kata kotor,
            $katasensor = "*upps*"; //kata pengganti, sesuaikan dengan keinginan
            $rawtext = preg_replace('/[ \t]+/', ' ', preg_replace('/\s*$^\s*/m', ' ', $text)); //membersihkan text, misal: terdapat dobel spasi, atau karakter aneh
            $katas = array();
            $katas = explode(" ", $rawtext); //mengambil kata-kata per spasi dan menyimpan dalam array
            $katakotor = explode(",", $katakotor);
            $i = 0;
            $kata = "";
            for ($i = 0; $i < count($katas); $i++) {
                $kata = $katas[$i];
                if (in_array(strtolower(preg_replace("/[^A-Za-z0-9 ]/", '', $katas[$i])), $katakotor)) {
                    $rawtext = str_replace($kata, $katasensor, $rawtext);
                }
            }
            return $rawtext;
        }
        if (isset($_POST ['submit'])) {
            $inputan = $_POST['inputan'];
            echo "<b>String asli :</b> $inputan <br>";
            echo "<b>menjadi :</b> " . sensorkata($inputan);
        } else {
            unset($_POST['submit']);
        }
        ?>
    </div>
    <u>by : indraiskandar10@gmail.com</u>
</div>

lalu buka file tersebut di browser , http://localhost/sensor_kata, nanti akan tampil seperti ini

Sebelum sensor :
Filter dan Sensor Kata di String Menggunakan Fungsi Preg_Replace() PHP Regex

Sesudah sensor :
Filter dan Sensor Kata di String Menggunakan Fungsi Preg_Replace() PHP Regex

Download Project

Sekian tutorial tentang Filter dan Sensor Kata di String Menggunakan Fungsi Preg_Replace() PHP Regex silahkan kembangkan dan semoga bermanfaat.

Mulai menulis blog sejak tahun 2012. Saat ini sedang disibukkan dengan karir dibidang IT nya.

Komentar yang mengandung spam / link aktif akan secara otomatis disembunyikan. Mohon maaf atas ketidaknyamanan jika pertanyaan telat ataupun tidak terbalas karena keterbatasannya waktu. Silahkan hubungi kami di menu Contact Us. Terimakasih
EmoticonEmoticon