ffCCBot/2.0 (http://commoncrawl.org/faq/)
Update: 11-08-2016

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

4 Feedback dari pembaca

    • Mungkin bisa disertakan contoh kalimat dan model pemotongannya seperti apa mbak, karena cakupannya terlalu luas.
      Intinya tentukan terlebih dahulu posisi karakter / kata yang ingin dipecah

  • om bisa buatin script php seperti ini nggak om? maaf om sy tidak bisa buat script php sendiri, bisanya cuma pakai jadi saja dari google, belajar otodidak pusing bangett

    *sebelum di script*
    aku cinta indonesia

    *setelah di script menghasilkan*
    cinta aku indonesia
    indonesia aku cinta

    makasih banyak nih om kalau mau dibuatin

    • Coba pakai explode mbak:

      $string = 'aku cinta indonesia';
      $split 	= explode(' ', $string);
      echo $split[1] . ' ' . $split[0] . ' ' . $split[2]; // cinta aku indonesia
      echo $split[2] . ' ' . $split[0] . ' ' . $split[1]; // indonesia aku cinta
      

Silakan tinggalkan komentar

Like Us

Dapatkan update artikel terbaru via E-Mail
  1. Memahami dan Menampilkan Tanggal dan Waktu Pada PHP
  2. Menghitung Selisih Waktu Dengan PHP – Cara Termudah
  3. Memahami Fungsi Date Pada PHP
  4. Memahami Fungsi Time, Strtotime, dan Mktime Pada PHP – Memanipulasi Waktu
  5. Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHP
  6. Setting ODBC MySQL Untuk Gammu
  7. Cara Install dan Menggunakan Gammu di Windows
  8. Format Tanggal Indonesia Dengan PHP
  9. Cara Install MySQL Portable Zip File di Windows – Panduan Lengkap
  10. Memahami Statemen Return Pada PHP