Fungsi substr() Pada Fungsi PHP

Berikut adalah artikel yang membahas fungsi substr() di PHP secara lengkap, mulai dari pengertian, sintaks, penjelasan parameter, hingga contoh penggunaan dalam berbagai skenario pengembangan web.


1. Pengenalan Fungsi substr()

Fungsi substr() di PHP berfungsi untuk mengambil sebagian (substring) dari sebuah string, dimulai dari posisi tertentu (start index) dan memiliki panjang tertentu (length). Fungsi ini sangat berguna ketika Anda ingin memotong teks, menampilkan potongan string yang lebih singkat, atau memanipulasi string berdasarkan posisi karakter.

Contoh kasusnya meliputi: - Memotong kata yang terlalu panjang untuk tampilan frontend.
- Mengambil empat digit terakhir nomor kartu atau nomor telepon.
- Menyusun bagian spesifik dari string seperti awalan (prefix) atau akhiran (suffix).


2. Sintaks Dasar substr()

Sintaks dasar penulisan fungsi substr() adalah sebagai berikut:

substr(
    string $string,
    int $start,
    int|null $length = null
): string

Keterangan parameter:

  1. $string
    • String input yang akan kita potong.
  2. **\(start** - Posisi indeks awal tempat pemotongan dimulai. - Indeks karakter pertama di string adalah `0`. Jika `\)start` bernilai negatif, pemotongan dimulai dari belakang string.
  3. $length (opsional)
    • Menentukan panjang potongan yang diambil.
    • Jika diabaikan atau bernilai null, maka potongan diambil hingga akhir string.
    • Jika bernilai negatif, pemotongan akan berhenti beberapa karakter sebelum akhir string.

Fungsi substr() akan mengembalikan string hasil pemotongan. Jika terjadi kesalahan, misalnya $start lebih besar dari panjang string (dan nilainya tidak negatif), maka substr() umumnya mengembalikan string kosong ("").


3. Penjelasan Lengkap Parameter

3.1 Parameter $start

3.2 Parameter $length (opsional)


4. Contoh Penggunaan Fungsi substr() pada Berbagai Kasus

4.1 Mengambil Karakter Pertama hingga Beberapa Karakter

Contoh Kasus

Anda memiliki string Halo Dunia dan ingin menampilkan 4 karakter pertamanya, yaitu Halo.

<?php
$text = "Halo Dunia";
$result = substr($text, 0, 4);

echo $result; 
// Output: Halo

Di sini:
- $start = 0 → mulai dari karakter pertama (H).
- $length = 4 → ambil empat karakter.

4.2 Mengambil Sisa String Mulai Karakter Tertentu

Contoh Kasus

Ingin mengambil teks mulai dari karakter ke-5 (indeks ke-4) sampai akhir. Misal, Halo Dunia, kita hanya ambil bagian Dunia.

<?php
$text = "Halo Dunia";
$result = substr($text, 5);

echo $result;
// Output: Dunia

4.3 Mengambil Bagian Teks dari Belakang (Offset Negatif)

Contoh Kasus

Anda ingin menampilkan 3 karakter terakhir dari string Halo Dunia. Karakter terakhir adalah i, kedua terakhir a, dan ketiga terakhir n.

<?php
$text = "Halo Dunia";
$result = substr($text, -3);

echo $result;
// Output: nia

4.4 Menghilangkan Karakter Terakhir

Contoh Kasus

Mungkin Anda memiliki teks Halo! dan ingin membuang tanda seru ! di bagian akhir.

<?php
$text = "Halo!";
$result = substr($text, 0, -1);

echo $result;
// Output: Halo

4.5 Memotong String yang Panjang untuk Preview

Contoh Kasus

Dalam pembuatan blog, Anda ingin menampilkan cuplikan (preview) artikel hanya 50 karakter pertama, lalu menambahkan ... di akhir.

<?php
$artikel = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus...";
$previewLength = 50;
$preview = substr($artikel, 0, $previewLength) . "...";

echo $preview;
// Output (kurang lebih): Lorem ipsum dolor sit amet, consectetur adipiscing ...

4.6 Menyembunyikan Bagian Tertentu (Seperti Nomor Kartu, dll.)

Contoh Kasus

Anda ingin menampilkan hanya 4 digit terakhir nomor kartu kredit untuk alasan keamanan. Misalkan nomor kartunya 1234567890123456.

<?php
$cardNumber = "1234567890123456";
$last4 = substr($cardNumber, -4);
$hidden = str_repeat("*", strlen($cardNumber) - 4) . $last4;

echo $hidden;
// Output: ************3456

4.7 Menghindari Masalah Karakter Multibyte (Catatan Penting)

Fungsi substr() bisa bermasalah jika string Anda mengandung karakter multibyte (misalnya huruf dengan aksen khusus, huruf Jepang, Tionghoa, Arab, dll.). Untuk penanganan yang benar, sebaiknya gunakan mb_substr() (multibyte substring) dengan menentukan encoding yang sesuai.

Contoh penggunaan mb_substr():

<?php
$text = "こんにちは世界"; // "Halo Dunia" dalam bahasa Jepang
// Fungsi substr() biasa bisa 'memotong' byte di tengah sehingga karakter rusak

echo mb_substr($text, 0, 3, "UTF-8");
// Output: こんに

Namun, untuk teks ASCII biasa (huruf-latin, angka, simbol ASCII), substr() aman digunakan.


5. Tips dan Trik

  1. Selalu Cek Panjang String
    Jika $start melebihi panjang string (dan bernilai positif), substr() akan mengembalikan string kosong. Pastikan Anda menyesuaikannya dengan kebutuhan logika program.

  2. Gunakan mb_substr() untuk Multibyte
    Untuk bahasa yang menggunakan karakter non-ASCII, gunakan mb_substr() guna menghindari karakter yang terpotong di tengah.

  3. Memanfaatkan Offset Negatif
    Offset negatif sangat berguna untuk mengambil karakter dari akhir string, misalnya menampilkan ekstensi file, digit terakhir nomor telepon, dll.

  4. Perhatikan null pada $length
    Jika $length tidak diisi atau diset null, maka substring diambil hingga akhir string. Ini memudahkan ketika Anda hanya peduli pada titik mulai saja.

  5. Kombinasi dengan Fungsi Lain
    substr() sering dipadukan dengan fungsi string lain seperti strlen() (untuk mengetahui panjang string), strpos() (untuk mencari posisi substring), atau str_replace() (untuk mengganti teks sebelum/ setelah pemotongan).


Fungsi substr() pada PHP merupakan salah satu fungsi dasar untuk memanipulasi string, terutama untuk mengambil dan memotong bagian tertentu dari sebuah teks. Dengan memahami cara kerja parameter $start dan $length, Anda dapat dengan mudah mengelola teks sesuai kebutuhan, apakah itu menampilkan cuplikan artikel, mengambil karakter terakhir dari sebuah input, menyembunyikan data sensitif, dan masih banyak lagi.

Selalu perhatikan pemakaian substr() jika Anda bekerja dengan karakter multibyte (non-ASCII). Jika aplikasi Anda menargetkan bahasa yang menggunakan karakter khusus, pertimbangkan untuk menggunakan mb_substr() dengan definisi encoding yang tepat. Demikian penjelasan lengkap tentang penggunaan substr(). Semoga artikel ini membantu Anda memanfaatkan substr() secara optimal dalam proyek PHP Anda.


Baca Juga :