ffCCBot/2.0 (http://commoncrawl.org/faq/)
NEW!! Buku Query MySQL Lihat Detail » x

Memotong Teks dan Kalimat dengan PHP

Pada kondisi tertentu terkadang kita perlu untuk memotong teks yang terlalu panjang, misal untuk suatu artikel yang cukup panjang kita potong 50 karakter pertama untuk membuat previewnya. Berikut beberapa kemungkinan kondisi yang dihadapi dan alternatif pemecahannya.

1 Memotong kata/teks/kalimat apa adanya

Misal kita ingin memotong teks pada posisi tertentu dan ditambahkan tiga titik dibelakangnya. Contoh dibawah ini akan mengambil 50 huruf pertama dengan hasil apa adanya dan ditambahkan tiga titik dibelakangnya.

<?php
$num_char = 50;
$text = 'Contoh script yang digunakan untuk memotong 50 huruf pertama dari kalimat / paragraf dengan php';
echo substr($text, 0, $num_char) . '...';
?>

setelah dijalankan maka hasil yang diperoleh adalah Contoh script yang digunakan untuk memotong 50 hur…

2 Memotong teks, kalimat atau paragraf tanpa memotong kata (dengan menghilangkan kata yang terpotong)

Melanjukan contoh nomor 1, namun hasil teks atau kalimat yang kita potong menghasilkan kata yang utuh (tidak terpotong) dengan batas maksimal karakter sebanyak 50 karakter. Sehingga alur scriptnya akan seperti ini:

  1. Ambil 50 huruf pertama.
  2. Jika berupa spasi, maka potong pada posisi tersebut.
  3. Jika bukan spasi, maka cari huruf sebelumnya hingga menemukan spasi, potong pada posisi tersebut.

untuk memenuhi kriteria diatas beberapa cara dapat digunakan yaitu:

Script 1:

<?php
$cut_text = substr($text, 0, $num_char);
if ($text{$num_char - 1} != ' ') { // jika huruf ke 50 (50 - 1 karena index dimulai dari 0) buka  spasi
	$new_pos = strrpos($cut_text, ' '); // cari posisi spasi, pencarian dari huruf terakhir
	$cut_text = substr($text, 0, $new_pos);
}
echo $cut_text . '...';

Script 2:

<?php
$char     = $text{$num_char - 1};
while($char != ' ') {
	$char = $text{--$num_char}; // Cari spasi pada posisi 49, 48, 47, dst...
}
echo substr($text, 0, $num_char) . '...';

Kedua script diatas sama sama menghasilkan kalimat Contoh script yang digunakan untuk memotong 50… , script ke dua lebih simpel dan lebih mudah dibaca/difahami, dan setelah dites, ternyata script ke dua yang menggunakan string index ($text{--$num_char}) rata-rata waktu eksekusi 3x lebih cepat dibanding dengan script pertama.

3 Memotong teks, kalimat atau paragraf tanpa memotong kata (dengan menambahkan kata yang terpotong)

Melanjutkan contoh sebelumnya, kondisi ketiga ini kita akan memotong teks dengan kriteria:

  1. Ambil 50 huruf pertama.
  2. Jika berupa spasi, maka potong pada posisi tersebut.
  3. Jika bukan spasi, maka cari huruf setelahnya hingga menemukan spasi, potong pada posisi tersebut.

untuk memenuhi kriteria diatas beberapa cara dapat digunakan yaitu:

Script 1:

<?php
if ($text{$num_char - 1} != ' ') {
	$num_char = strpos($text, ' ', $num_char); // cari posisi spasi, pencarian dilakukan mulai posisi 50
}
echo substr($text, 0, $num_char) . '...';

Script 2:

<?php
$char     = $text{$num_char - 1};
while($char != ' ') {
	$char = $text{++$num_char}; // Cari spasi pada posisi 51, 52, 53, dst...
}
echo substr($text, 0, $num_char) . '...';

Kedua script diatas sama sama menghasilkan kalimat Contoh script yang digunakan untuk memotong 50 fungsi… , script pertama lebih simpel dan mudah dibaca/difahami, namun setelah dites, lagi lagi script ke dua yang menggunakan string index ($text{++$num_char}) rata-rata waktu eksekusinya 5x lebih cepat dibanding dengan script pertama.

Membuat Fungsi Untuk Memotong Teks, Kalimat atau Paragraf pada PHP

Ketiga kondisi diatas dapat kita kumpulkan menjadi satu fungsi sehingga kode lebih terorganisir dan lebih mudah digunakan. contoh  fungsi untuk memotong teks atau kalimat dengan PHP:

<?php
function cutText($text, $length, $mode = 2)
{
	if ($mode != 1)
	{
		$char = $text{$length - 1};
		switch($mode)
		{
			case 2: 
				while($char != ' ') {
					$char = $text{--$length};
				}
			case 3:
				while($char != ' ') {
					$char = $text{++$num_char};
				}
		}
	}
	return substr($text, 0, $length);
}

fungsi diatas dapat kita coba dengan menjalankan perintah berikut:

<?php
$text = 'Contoh script yang digunakan untuk memotong 50 huruf pertama dari teks, kalimat atau paragraf dengan php';
echo cutText($text, 50, 1) . '...'; // Contoh script yang digunakan untuk memotong 50 hur...
echo cutText($text, 50) . '...'; // Contoh script yang digunakan untuk memotong 50...
echo cutText($text, 50, 3) . '...'; // Contoh script yang digunakan untuk memotong 50 huruf...

Demikian tutorial mengenai cara memotong teks, kalimat atau paragraf dengan PHP, semoga bermanfaat.

Recomended Post

10 Feedback dari pembaca

Silakan tinggalkan komentar

*

Like Us

Dapatkan update artikel terbaru via E-Mail
  1. Query MySQL di Dalam PHP Loop – Bad Practice !!!

  2. Software Kompres dan Optimasi Gambar / Foto (JPG dan PNG) – Tested

  3. 40+ Theme WordPress Gratis Untuk Blog – Modern & Responsive

  4. Eksklusif Cheat Sheet PHP Bahasa Indonesia – Pendamping Belajar PHP

  5. PHP FORM III: Menampilkan Data MySQL Dengan PHP dan Form HTML

  6. Tutorial PHP Form II: Menampilkan Hasil Input Form HTML dengan PHP

  7. Tutorial PHP Form I: Menghubungkan Form HTML dengan PHP

  8. Menampilkan Data Dari Beberapa Tabel MySQL – JOIN Pada MYSQL

  9. Memahami dan Menampilkan Tanggal dan Waktu Pada PHP

  10. Menghitung Selisih Waktu Dengan PHP – Cara Termudah