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:
-
$string
- String input yang akan kita potong.
- String input yang akan kita potong.
- **\(start** - Posisi indeks awal tempat
pemotongan dimulai. - Indeks karakter pertama di string adalah `0`. Jika
`\)start` bernilai negatif, pemotongan dimulai dari belakang
string.
-
$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.
- Menentukan panjang potongan yang diambil.
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
-
Nilai Positif:
Menghitung posisi dari depan string, dimulai dari0
(karakter pertama).- Contoh:
$start = 2
berarti mulai memotong dari karakter ketiga.
- Contoh:
-
Nilai Negatif:
Menghitung posisi dari akhir string.- Contoh:
$start = -1
berarti memotong dari karakter terakhir,$start = -2
dari karakter kedua terakhir, dan seterusnya.
- Contoh:
3.2 Parameter $length
(opsional)
-
Nilai Positif:
Banyaknya karakter yang akan diambil dari posisi$start
.- Contoh:
$length = 3
berarti mengambil tiga karakter setelah$start
.
- Contoh:
-
Nilai Negatif:
Pemotongan akan berhenti -length karakter sebelum akhir string.- Contoh:
$length = -3
berarti memotong sampai 3 karakter sebelum akhir.
- Contoh:
-
null
atau Tidak Diisi:
Jika diabaikan, pemotongan akan berlanjut hingga akhir string (atau hingga awal string jika$start
negatif).
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
-
$start = 5
berarti mulai ambil dari indeks ke-5 (karakter ke-6, yaituD
). - Karena parameter
$length
tidak diisi, pemotongan berlanjut hingga akhir string.
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
-
$start = -3
berarti mulai dari 3 karakter sebelum akhir, sehingga hasilnya adalahnia
.
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
-
$start = 0
berarti mulai dari awal,
-
$length = -1
berarti hentikan 1 karakter sebelum akhir string.
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 ...
- Disini,
$start = 0
dan$length = 50
akan memotong hingga 50 karakter pertama.
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
- Mengambil 4 digit terakhir dengan
$start = -4
. - Kemudian menambahkan deretan
*
sesuai jumlah karakter yang sisanya.
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
-
Selalu Cek Panjang String
Jika$start
melebihi panjang string (dan bernilai positif),substr()
akan mengembalikan string kosong. Pastikan Anda menyesuaikannya dengan kebutuhan logika program. -
Gunakan
mb_substr()
untuk Multibyte
Untuk bahasa yang menggunakan karakter non-ASCII, gunakanmb_substr()
guna menghindari karakter yang terpotong di tengah. -
Memanfaatkan Offset Negatif
Offset negatif sangat berguna untuk mengambil karakter dari akhir string, misalnya menampilkan ekstensi file, digit terakhir nomor telepon, dll. -
Perhatikan
null
pada$length
Jika$length
tidak diisi atau disetnull
, maka substring diambil hingga akhir string. Ini memudahkan ketika Anda hanya peduli pada titik mulai saja. -
Kombinasi dengan Fungsi Lain
substr()
sering dipadukan dengan fungsi string lain sepertistrlen()
(untuk mengetahui panjang string),strpos()
(untuk mencari posisi substring), ataustr_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 :