Membuat Ringkasan Artikel dengan PHP
Pembahasan kali saya akan mencoba berbagi mengenai cara membuat ringkasan artikel pada website atau blog. Contoh ringkaan artikel ini adalah pada website saya ini, coba buka menu Tutorial > PHP atau klik di sini. Seperti itulah ringkasan artikel yang saya maksud disini.
Sebuah ringkasan artikel ditentukan dengan berapa banyak jumlah kata yang ingin ditampilkan, apakah hanya 50 kata, 100 kata, 200 kata atau berapapun menyesuaikan dengan kebutuhan kita. Bila perlu kita bisa membuatnya menjadi dinamis sehingga jumlah kata yang ingin ditampikan bisa kita tentukan sendiri.
Nah.. berangkat dari sana, ada sebuah problema yang pada awalnya saya sendiri mengalami problema, namun permasalahan tersebut sudah saya temukan solusinya dan kini saya mencoba berbagi dengan Sahabat AJN semuanya. Semoga bermanfaat. Yuk kita mulai oembahasannya.
Menentukan Jumlah Kata yang Ingin Ditampilkan
Ada beberapa cara yang dapat dilakukan dalam menentukan jumlah kata yang ingin ditampilkan atau kita sebut ringkasan artikel. Cara tersebut adalah dengan membuatnya menjadi sebuah array (meng-explode dengan delimiter spasi) dan menggunakan fungsi strtok. Yuk kita lihat contoh dari kedua cara ini
<?php
// menggunakan teknik explode
include "mysqli.connect.php";
$jml_kata = 100;
$sql = $mysqli->query("SELECT slug,title,body from artikel order by tgl limit 10");
while($data = mysqli_fetch_array($sql)){
$str = explode(" ", strip_tags($data['body']));
echo "<h1>$data[title]</h1>";
for($i=0;$i<=$jml_kata;$i++)
echo $str[$i]," ";
}
?>
<?php
// menggunakan strtok
include "mysqli.connect.php";
$jml_kata = 100;
$sql = $mysqli->query("SELECT slug,title,body from artikel order by tgl limit 10");
while($data = mysqli_fetch_array($sql)){
$kata = strip_tags($data['body']);
$str = explode(" ", $kata);
echo "<h1>$data[title]</h1>";
for($i=0;$i<=$jml_kata;$i++){
echo $str[$i]," ";
$content .= $kata;
$content .= " "; // ada spasi antara tanda petik
$kata=strtok(" ");
}
echo $content;
}
?>
Hapus Dulu Tag HTMLnya
Yang perlu saya tekankan dari teknik bikin ringkasan artikel disini adalah bahwasanya artikel yang diambil dari database harus kita hapus dulu semua tagnya. Jika tidak dihapus tagnya, akan menemui permasalahan tag yang tidak sempurna (meski tidak semua) dan ini hanya akan terjadi pada tag yang memiliki atribut. Yuk kita lihat gambarannya pada script di bawah ini.
<?php
$jml_kata = 100;
$html = "<p align=\"justify\">Sebelum kita mengenal apa itu HTML ada baiknya kita mengetahui dulu <em>apa itu HTTP</em>. <font color=\"#ffff00\">HTTP (HyperText Transer Protokol)</font> merupakan protokol yang digunakan untuk <strong>mentransfer</strong> data atau dokumen antara web server ke web browser (Firefox, Internet Explorer, Opera, dll). Dan protokol ini sewaktu melakukan transfer, dokumen atau data webnya ditulis atau dengan menggunakan format HTML.</p>";
$kata = strip_tags($html);
$str = explode(" ", $kata);
for($i=0;$i<=$jml_kata;$i++){
echo $str[$i]," ";
$content .= $kata;
$content .= " "; // ada spasi antara tanda petik
$kata=strtok(" ");
}
echo $content;
?>
Berdasarkan contoh di atas, bila kita tidak menghapus tag yang ada maka akan ada permasalahan seperti misalnya kita hanya akan mengambil 16 kata saja. Kejadiannya adalah ada tag yang tidak mempunyai tag penutup, dan bahkan tag pembukanya saja belum diakhiri dengan >. Dan hasilnya tampilan artikel yang kita buat jadi tidak sesuai bahkan malah mengganggu layout website (pengalaman saya pernah )
Oke segitu dulu untuk tutorial kali ini dari saya, semoga bermanfaat.