

İlk fonksiyonumuz:
function etiket($yazi) { $yazi = trim($yazi); $bul = array(' ','.'); $yap = array(', ',''); $yeni = str_replace($bul,$yap,$yazi); return $yeni; }
Bu fonksiyon ile veritabanından gelen konu başlığındaki boşlukları virgül ile değiştirerek meta keywords bölümüne ekleriz.
Diğer fonksiyonda işler biraz daha karışık, ayrıca eklenen konu etiketlerinde her kelime virgülle ayrılmayabilir,

her virgül bloğundan sonra ikiden fazla kelime gelebilir, bunları virgülden itibaren parçalayacak bir fonksiyon yazmalıyız, ping atmak, php ile ping atmak şeklindeki etiketleri kelime kelime ayırırsak olmaz. Bunu resimdeki gibi ayıracak fonksiyonumuz:
function blog_tags($yazi){ $yeni=''; $yazi = str_replace("'","",str_replace('"','',trim($yazi))); $tags = explode(',', $yazi);Bu fonksiyonları etiket($konubaşlığı); ve blog_tags($konuetiket); şeklinde kullanılır.
foreach($tags as $n_tag){ if(strlen($n_tag)>2){ $yeni .= '<div class="taglink"><a href="sonuc?a='.trim($n_tag).'" title="'.trim($n_tag).'">'.trim($n_tag).'</a></div>'; } } return $yeni; }
Komutların anlamlarını anlatmak gerekirse:
trim() : Cümle veya kelime öbeklerinin başındaki ve sonundaki boşlukları kaldırır.
str_replace() : Bir metindeki veya kelimedeki değiştirmek istediğimiz yerleri yeniden düzenlememizi sağlar. (A harflerini B harfi ile değiştir gibi)
explode() : Belirlediğimiz karakterden başlayarak cümleleri veya kelime öbeklerini dizi değişkeni haline getirir. Bu fonksiyonda virgülden itibaren kelimeleri ayırıp $tags isimli değişkene dizi değişkeni olarak aktardık.
foreach : Bir çeşit döngüdür. $tags isimli dizi değişkenindeki her değeri döngü ile $n_tag isimli değişkene aktardık ve ekrana yazdırırken div içinde a etiketi ile bastırdık.
return : Fonksiyonlarda dışarıya değer döndürmek için kullanılır.
kamil şakrak
04 March 2014 10:35
Abi peki aynı kelimeler varsa onu silsin diğerlerini eklesin onu nasıl yaparız ?