Truncating pada PHP untuk Mendapatkan String Tertentu


Truncating adalah cara yang dipergunakan untuk memotong teks yang panjang agar dapat ditampilkan dengan hanya beberapa kata saja di website kita. Kegunaan dari truncating tentu sangatlah banyak, misalnya untuk menampilkan beberapa sinopsis dari sekian banyak data berbentuk tulisan pada database yang akan menjadi terlalu panjang apabila kita tampilkan secara keseluruhan. Contoh truncating misalnya ketika kita telah memiliki sekian banyak tulisan dan ingin kita tampilkan dalam halaman depan website yang kita miliki. Katakanlah kita ingin menampilkan 10 tulisan terakhir. Maka, yang kita lakukan adalah melakukan fetch array terhadap data tersebut, misalnya dengan kode PHP sebagai berikut:
<?
$pemakai='root';
$sandi='admin';
$database='kursusprivat';
 
$koneksi=mysql_connect('localhost',$pemakai,$sandi);
if (!$koneksi){
echo "Koneksi GAGAL! <br>";
}
$pilihdb=mysql_select_db($database, $koneksi);
if (!$pilihdb){
echo "Database TIDAK ADA! <br>";
}
$order='SELECT * FROM tulisan ORDER BY id LIMIT 10 DESC';
$hasil=mysql_query($order, $koneksi);
while ($baris=mysql_fetch_array($hasil)){
echo "$baris[judul]<br />";
echo "$baris[isi]<br />";
}
?>
Dengan cara di atas, maka kita dapat menampilkan 10 tulisan terakhir yang telah disimpan pada table “tulisan”, database “kursusprivat”. Akan tetapi, yang ditampilkan adalah keseluruhan dari data tersebut, padahal kita hanya menginginkan hanya beberapa kata saja agar tampilan website menjadi lebih ringkas.

Function substr()

Function substr() dipergunakan untuk memotong sejumlah huruf pada hitungan tertentu. Syntaxnya adalah sebagai berikut:
substr ( string $string , int $start [, int $length ] );
Keterangan:
string adalah tulisan yang akan kita potong, minimal memiliki 1 karakter
start adalah posisi awal di mana tulisan tersebut akan dipotong (biasanya positif, tapi bisa juga negatif)
length adalah berapa panjang tulisan tersebut akan diambil
Contoh:
$tanggal="2011-12-31";
$hari=substr($tanggal, -2);    //hasilnya 31
$bulan=substr($tanggal, 5, 2); //hasilnya 12
$tahun=substr($tanggal, 0, 4); //hasilnya 2011
cukup jelas bukan?
Dengan demikian, jika kita ingin memotong 100 huruf pertama dari data field “isi” pada contoh di atas adalah dengan menambahkan perintah substr() tersebut sehingga baris-baris kodenya menjadi sebagai berikut:
<?
$pemakai='root';
$sandi='admin';
$database='kursusprivat';
$koneksi=mysql_connect('localhost',$pemakai,$sandi);
if (!$koneksi){
echo "Koneksi GAGAL! <br>";
}
$pilihdb=mysql_select_db($database, $koneksi);
if (!$pilihdb){
echo "Database TIDAK ADA! <br>";
}
$order='SELECT * FROM tulisan ORDER BY id LIMIT 10 DESC';
$hasil=mysql_query($order, $koneksi);
while ($baris=mysql_fetch_array($hasil)){
$sinopsis = substr($baris[isi], 100);
echo "$baris[judul]<br />";
echo "$sinopsis<br />";
}
?>
Nah, dengan cara ini kita dapat memotong teks yang panjang menjadi hanya ditampilkan 100 huruf pertama saja. Akan tetapi muncul masalah lain, yakni pemotongan tersebut tidak berdasarkan pada kata melainkan pada huruf, sehingga apabila huruf ke-100 tersebut berada pada tengah-tengah sebuah kata, misalnya “fungsi” menjadi “fun”. Wah, jadinya lucu bukan? Atau malah bisa jadi berbahaya.

Function strpos()

Function strpos() dipergunakan untuk menghitung posisi karakter tertentu pada sebuah kata atau kalimat. Syntax-nya adalah sebagai berikut:
strpos($kalimat, $karakter[, int $offset]);
Contoh:
<?php
//Mencari posisi sebuah karakter dengan mengabaikan posisi karakter yang telah ditemukan sebelumnya
$kalimat = 'abcdef abcdef';
$pos = strpos($kalimat, 'a', 1); // $pos = 7, bukan 0
?>
Memotong Teks Tepat pada SpasiDengan mengabungkan fungsi pencarian posisi dan fungsi truncating, maka kita bisa menghasilkan sebuah fungsi baru yang dapat kita gunakan untuk memotong teks tepat pada spasi. Contohnya adalah sebagai berikut:
<?
$pemakai='root';
$sandi='admin';
$database='kursusprivat';
$koneksi=mysql_connect('localhost',$pemakai,$sandi);
if (!$koneksi){
echo "Koneksi GAGAL! <br>";
}
$pilihdb=mysql_select_db($database, $koneksi);
if (!$pilihdb){
echo "Database TIDAK ADA! <br>";
}
$order='SELECT * FROM tulisan ORDER BY id LIMIT 10 DESC';
$hasil=mysql_query($order, $koneksi);
while ($baris=mysql_fetch_array($hasil)){
$isi = "$tampil[isi]";
$sinopsis = substr($isi,0,strpos($isi,' ',100));
echo "$baris[judul]<br />";
echo "$sinopsis<br />";
}
?>
Nah, dengan script seperti di atas, maka kita dapat memotong teks yang panjang menjadi teks yang lebih pendek dan hasil pemotongan teksnya pun lebih baik karena dipotong tepat pada spasi.

Artikel Lainnya