Memotong Teks dan Kalimat dengan PHP

3 minute read
Memotong Teks dan Kalimat dengan PHP

Pada kondisi tertentu terkadang sangat membutuhkan kode untuk memotong teks yang terlalu panjang, misal dalam kondisi dalam suatu artikel atau teks yang cukup panjang kemudian ingin memotong 50 karakter pertama untuk membuat previewnya terlihat lebih rapih. Berikut ini beberapa kemungkinan kondisi yang dihadapi dan cara alternatif untuk menyelesaikannya.

Fungsi sederhana yang cukup sering digunakan, yaitu fungsi substr(). Fungsi substr() sering digunakan untuk memotong kalimat atau teks dalam sebuah string atau mengambil sebagian nilai dari sebuah panjang string di dalam pemograman PHP.

Memotong kata/teks/kalimat apa adanya

Misalkan Anda ingin memotong teks pada posisi tertentu dan ditambahkan tiga titik dibelakangnya. Contoh dibawah ini adalah kode fungsi yang akan mengambil 50 huruf pertama dengan hasil apa adanya kemudian 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 disimpan kemudian dijalankan maka hasil yang diperoleh adalah Contoh script yang digunakan untuk memotong 50 hur…

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

Melanjukan contoh nomor 1, namun hasil teks atau kalimat yang Anda potong menghasilkan kata yang utuh (tidak terpotong) dengan batas maksimal karakter sebanyak 50 karakter. Sehingga alur kode script php nya 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 tersebut ada beberapa cara yang dapat Anda gunakan 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 kode script php diatas, keduanya sama menghasilkan kalimat Contoh script yang digunakan untuk memotong 50… , pada script ke dua lebih simpel dan lebih mudah dibaca atau dipahami, dan setelah dicoba, ternyata kode script kedua tersebut yang menggunakan string index ($text{--$num_char}) rata-rata waktu eksekusi 3x lebih cepat dibanding dengan script pertama.

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

Melanjutkan dari contoh sebelumnya, kondisi ketiga ini Anda 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 tersebut ada 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 kode script php diatas, kedua nya sama menghasilkan kalimat Contoh script yang digunakan untuk memotong 50 fungsi… , namun pada kode script php pertama lebih simpel dan mudah dibaca atau dipahami, namun setelah dicoba, bahwa 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 Anda kumpulkan menjadi satu fungsi sehingga kode php tersebut akan lebih terorganisir serta 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 Anda 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.