twitter
    join me to learn together :D

Jumat, 23 Desember 2011

Membuat Teks Dalam String Menjadi Title Case di PHP

Kasus : 
saya ingin membuat String didalam Variable php yang saya punya menjadi title case (huruf besar disetiap awal kata), dengan catatan setiap kata seperti "dan", "tapi", "yang", "adalah" tetap diawali dengan huruf kecil. bagaimana caranya??

Pemecahan :
saya membuat sebuah file yang berisi function untuk menggenerate kata-kata dalam sebuah variable menjadi case sensitive. kita hanya perlu memasukkan variable yang berisi teks kedalam parameter dalam function.
Anda bisa Mendownload filenya disini

didalamnya terdapat 2 file,
file yang bernama convert_titlecase.php adalah file berisi function converternya,
dan file yang kedua bernama instansiasi.php adalah contoh penggunaannya.

sebagai catatan, didalam file convert_titlecase.php ada script yang kurang lebih seperti ini :
$smallwordsarray = array( 'di','dan','atau','tetapi','tapi','adalah','jika','kemudian','yang'); 
ini adalah array yang berisi data kata-kata yang huruf awalnya tidak akan dikapitalkan,
contoh, saya memiliki kalimat "ini adalah kata yang akan di konversi menjadi title case" ketika di konversi akan menghasilkan kalimat "Ini adalah Kata yang Akan di Konversi Menjadi Title Case"

kata "adalah", "yang", "di" huruf awalnya tidak menjadi kapital karena ada didalam data array $smallwordsarray, dan anda bisa menambah atau mengurangi data dalam arraynya.



jika anda mengalami kesulitan untuk mendownload filenya, berikut saya tuliskan script phpnya
 file convert_titlecase.php
<?php

class Stringtotitlecase
{
    function strtotitle($title) // Konversi $title ke Title Case, Dan Me-return hasil.
    {
        //  array 'small words' adalah data array yang berisi kata - kata
        //  yang huruf awalnya tidak menjadi kapital
        //  anda bisa menambahkan atau mengurangi sesuai kebutuhan anda
        $smallwordsarray = array( 'di', 'dan', 'atau', 'tetapi', 'tapi', 'adalah', 'jika', 'kemudian', 'selain', 'ketika', 'dari', 'oleh', 'untuk', 'ke', 'yang' );
        // memisahkan isi string menjadi kata-kata
        $words = explode(' ', $title);
        foreach ($words as $key => $word){
            // jika Ini kata pertama, atau bukan bagian dari $smallwordsarray,
            // Kapitalkan huruf awalnya dengan ucwords().
            if ($key == 0 or !in_array($word, $smallwordsarray)) $words[$key] = ucwords($word); }
            // Menggabungkan kembali kata-kata kedalam string baru
            $newtitle = implode(' ', $words);
            return $newtitle;
    }
}
?>

 file instansiasi.php
<?php
$judul = "ini adalah kata yang akan di konversi menjadi title case";
include("convert_titlecase.php");

$konversi = new Stringtotitlecase;
$judul_baru = $konversi->strtotitle($judul);
echo $judul_baru;
?>

Tidak ada komentar:

Posting Komentar