O Şimdi Asker
Pim Çek Bomba At....Astek
Aralık
10
Kategori (Php) 10/12/2009

Bir çok sitede gördüğümüz ve blog nesli başladğında hortlayan her site sahibini ya da blog sahibinin vazgeçilmez eklentisi etiket (tag) olayı. Bilindiği üzere arama motorları açısından etiketin bir çok faydası var.

Özellikle konu ile ilgili etiket girildiğinde -ki az ve öz olmalı- getirisi çok fazla olacaktır. Benim gibi wordpress sevmeyenler ise mecbur bu eklentiyi kendileri oluşturmak zorunda kalıyor. Wordpress'in bir çok güzel özelliği mevcut. Ancak sistem kaynaklarını düşündüğümüzde hayli fazla yeme gücüne sahip.

Sadede gelirsek etiket sisteminin ana fonksiyonu "str_word_count" fonksiyonumuz olacak.

Malzemelerimiz,
foreach,
array,
str_word_count
rand

Bu fonksiyonları detaylıca anlatmayacam. Zira php.net'ten istediğiniz kadar örneği ile açıklamalarını bulabilirsiniz.

Öncelikle fonsiyonel çalışırsak sistemi istediğimiz yere rahatça uygulayabiliriz.

İki farklı fonkiyon vereceğim. İlki sadece etiketleri sıralayan,ikincisi ise etiket bulutu şeklinde isteğe göre(opsiyonel) olan.

İlkine geçersek;


<?php 

function etiketsistemi($icerik){
foreach (
str_word_count($icerik,1,'ıİüÜöÖğĞşŞçÇ1234567890') as $etiket ){
    
$etiket=strtolower($etiket); //harflerimizi küçültelim
    
echo '<a href="etiket/'.$etiket.'" title="'.$etiket.'">'.$etiket.'</a> ';
}
}

$icerik 'Ayşe Tatile Çıktı';
etiketsistemi($icerik);
 
?>


Diğeri iste rasgele font büyüklüğünü,fontu ve rengi gösteren etiket bulutu.

$endusukfont ve $enbuyukfont kısımlarını kendinize göre ayarlayın.


<?php 

function etiketsistemi($icerik,$endusukfont=10,$enbuyukfont=30){
$icerik strip_tags($icerik);
$renkler = array(1=>'Black','Yellow','Pink','Green','Orange','Purple',
                
'Blue','Beige','Brown','Teal','Navy','Maroon','LimeGreen'); //istediğiniz kadar çoğaltabilirsiniz 
                
$fontlar = array(1=>'arial','georgia','helvetica','impact','times new roman','trebuchet ms','verdana'); //istediğiniz kadar çoğaltabilirsiniz 

    
foreach (str_word_count($icerik,1,'ıİüÜöÖğĞşŞçÇ1234567890') as $etiket ){
        
$etiket=strtolower($etiket); //harflerimizi küçültelim
        
$renk $renkler[rand(1,count($renkler))];
        
$font $fontlar[rand(1,count($fontlar))];
        
$fontbuyuklugu rand($endusukfont,$enbuyukfont);
        echo 
'<a href="etiket/'.$etiket.'" title="'.$etiket.'" style="color:'.$renk.';font-size:'.$fontbuyuklugu.';font-family:'.$font.'">'.$etiket.'</a> ';
    }
}

$icerik 'ayşe tatile istanbuldan arabasıyla son sürat sürerek çıktı';
etiketsistemi($icerik,10,30);
 
?>


İkisinide tek bir fonksiyonda görmek isteyenler için


<?php 

function etiketsistemi($stil='bulutlu',$icerik,$endusukfont=10,$enbuyukfont=30){
$icerik strip_tags($icerik);
$renkler = array(1=>'Black','Yellow','Pink','Green','Orange','Purple',
                
'Blue','Beige','Brown','Teal','Navy','Maroon','LimeGreen'); //istediğiniz kadar çoğaltabilirsiniz 
                
$fontlar = array(1=>'arial','georgia','helvetica','impact','times new roman','trebuchet ms','verdana'); //istediğiniz kadar çoğaltabilirsiniz 

    
foreach (str_word_count($icerik,1,'ıİüÜöÖğĞşŞçÇ1234567890') as $etiket ){
        
$etiket=strtolower($etiket); //harflerimizi küçültelim
    
if($stil == 'bulutlu'){
        
$renk $renkler[rand(1,count($renkler))];
        
$font $fontlar[rand(1,count($fontlar))];
        
$fontbuyuklugu rand($endusukfont,$enbuyukfont);
        echo 
'<a href="etiket/'.$etiket.'" title="'.$etiket.'" style="color:'.$renk.';font-size:'.$fontbuyuklugu.';font-family:'.$font.'">'.$etiket.'</a>';
    }else{
        echo 
'<a href="etiket/'.$etiket.'" title="'.$etiket.'">'.$etiket.'</a> ';
    }
    
    }
}

$icerik 'ayşe tatile istanbuldan arabasıyla son sürat sürerek çıktı';
etiketsistemi('normal',$icerik,10,30); //bulutlu istiyorsanız normal yerien bulutlu yazın
 
?>


Örnek Test Edin (PHP Etiket Sistemi Uygulaması Örneği)

Benzer Başlıklar...

» Flash Oyun Scripti (Php) Sadece 50 TL


Yorumlar (2)

  1. Tolga

    09.07.2010, 05:55

    Kodlar gerçekten çok işime yaradı tşk ederim fakat örnek bi de .htaccess ekleseydin daha iyi olurdu :)

  2. hasan ak

    20.08.2010, 01:14

    hocam harikasın, bu kodlar tam da aradığım kodlardı, ellerine sağlık çok çok teşekkürler.


(Gerekli)



(Gerekli)