Cara hapus teks pada awal text string – php

Bismillaahirrohmaanirrohiim…

Pada beberapa kejadian saat ngoding, saya seringkali ingin menghapus awal string di PHP. Karena seringnya kejadian tersebut, saya jadi ingin membuat fungsi yang mudah dan cepat.

Sebenarnya bisa saja menggunakan regex, namun regex lebih banyak konsumsi ram dan lebih lambat dibanding manipulasi string biasa.

Berikut ini adalah cara hapus teks atau string pada awal teks dengan PHP.

Contoh:

$str = 'mereka sarapan pakai sate';
awal text "mereka" akan dihapus sehingga menjadi
$str = 'sarapan pakai sate';

Cara 1

$str = 'satu_dua_tiga_empat';
$prefix = 'satu_';
if (substr($str, 0, strlen($prefix)) === $prefix) {
    $str = substr($str, strlen($prefix));
}
//hasil
$str = 'dua_tiga_empat';

Cara 2

$str = 'satu_dua_tiga_empat';
$prefix = 'satu_';
$str = preg_replace('/^' . preg_quote($prefix, '/') . '/', '', $str);
//hasil
$str = 'dua_tiga_empat';

Cara 3

$str = 'satu_dua_tiga_empat';
$prefix = 'satu_';
$str = preg_replace('/^'.$prefix.'/', '', $str);
//hasil
$str = 'dua_tiga_empat';

Cara 4

$str = 'satu_dua_tiga_empat';
$prefix = 'satu_';
if (0 === stripos($str, $prefix)) {
    $str = substr($str, strlen($prefix)).'';
}
//hasil
$str = 'dua_tiga_empat';

Nah, dari ke empat cara di atas, yang paling efisien menurut saya adalah cara yang ke empat, karena diproses lebih cepat dan hasilnya sama benarnya. Jika tidak ingin insensitive, fungsi stripos diganti dengan strpos.

Okay, untuk membuatnya menjadi fungsi tinggal buat seperti ini:

function removePrevText($str, $prefix) {
    if (0 === stripos($str, $prefix)) {
        $str = substr($str, strlen($prefix)).'';
    }
    return $str;  
}

Jika ingin menghapus awal teks tinggal panggil fungsinya:

$str = 'satu_dua_tiga_empat';
$prefix = 'satu_';
$string = removePrevText($str, $prefix);

//hasil
echo $string;//'dua_tiga_empat';

Demikian dulu tutorial cara menghapus awal teks atau string dengan PHP.

Semoga bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *