Değişik sitelerde gördüğüm googleden gelen ziyaretçilerin hangi kelimeleri yazarak sitenize ulaştığını sitenizde gösterebilme zımbırtısını nasıl yapabileceğinizi anlatacağım.
Bunun için vbulletinde "vbulletin tag cloud" adında bir eklenti var.Bunu kendi yazdığım sitemde de kullanmak istiyordum.
Ama neden kullanacaktım?
Bu konu hakkında biraz araştırma yaptım acayip hit çekiyor diyorlar bende denemekten zarar gelmez diye php ile yapıyım dedim.
Yaptıktan 1 gün sonraki
Google Analytics verilerinin resmini koydum.

Büyük ihtimal dalgalandırmadır diye pek önem vermedim ben.Yorumu size bırakıyorum.
Öncelikle bu uygulamayı tamamen kendim yazdım ama arama kelimelerini göstermek için kullandığım sayfayı vbulletin tag cloud'dan alıp düzenledim.Çünkü hiti çok olanları büyük göstermeye fazlaa kafa yoramadım bir ara uğraştım ama kafam karıştı o kısmı vbulletin tag cloud'dan aldım.
PHP ye yeni başlayan kullanıcılar için basite indirgemek için 3 dosya halinde dağıttım.Bu haliyle iyice çarşafa doladım ama neyse
Sözü fazla uzatmayım.
Sql kodlarımız:
CREATE TABLE IF NOT EXISTS `arama` ( `id` int(11) NOT NULL auto_increment, `kelime` varchar(100) character set latin5 NOT NULL, `link` varchar(100) NOT NULL, `hit` int(11) NOT NULL default '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;İlk dosyamız googleden gelen kelimeleri yakalayacağımız dosyamız olan
googlearama.php :
<?php
$link=$_SERVER["HTTP_REFERER"]; // Kullanıcının bu sayfaya hangi sayfadan geldiği bilgisini alıyoruz.
if(!eregi('&btnG',$link)) { //&btnG yoksa ekliyoruz.
$link=$link."&btnG";
}
$link=str_replace("http://","",$link); // / işaretine göre bölceğimizden http:// atıyoruz.
$linkbol=explode("/",$link); //google.com.tr den sonrasını alıyoruz.
$link=urldecode($linkbol[1]); //url decode yapıyouz
$ara = array ('ı','Å?','ü','ç','ö','Ä?','ÅŸ','Ç','İ','ÄŸ','Å?','Ö','Ü','ı','Å?','ç','ö','Ä?','ÅŸ','Ç','İ','ÄŸ','Å?','Ö','Ü','ü','ÄŸ');
$degis = array ('ı','ş','ü','ç','ö','ğ','ş','Ç','i','ğ','Ş','Ö','Ü','ı', 'ş', 'ç', 'ö', 'ğ', 'ş', 'Ç', 'i', 'ğ', 'Ş', 'Ö', 'Ü', 'ü', 'ğ');
$link = str_replace($ara, $degis, $link); // türkçe karakterlerde sorun varsa onu düzeltiyoruz.
preg_match_all('#&q=(.*?)&#si',$link,$link); //q= aradığımız kelimeleri tutuyor & ile biten kısma kadar aradaki yeri alıyoruz.
$link=str_replace("+"," ",$link[1][0]); // boşluklar linkte + olarak geçtiğinden + ları boşluk yapıyoruz.
$link=htmlspecialchars(mysql_real_escape_string($link)); // veriler süzdürüyolor
function turkcekucuk($buyuk) {
$buyuk=strtr($buyuk,"IĞÜŞİÖÇ","ığüşiöç");
return Strtolower($buyuk);
}
$link=trim(turkcekucuk($link)); // veriler küçültülüyor.
$varmiacep=mysql_fetch_array(mysql_query("SELECT count(id) FROM arama WHERE kelime='$link'")); // kelime var mı ki?
$vardir=$varmiacep[0];
if($vardir==1) { // varsa kelimenin hitini arttırıyoz.
if(!eregi('site:',$link)) { //site:siteismi.com değilse hiti arttırdık
if(mysql_query("UPDATE arama SET hit=hit+1 WHERE kelime='$link'")) {
}
}
} else { //yoksa
$linik=$_SERVER["REQUEST_URI"]; //url i aldık
if(strlen($link)<=101 || strlen($linik)<=101) { // bilgileri fazla uzun değilse işleme geçiyoruz.
if(!eregi('site:',$link)) { //site:siteismi.com değilse hiti arttırdık
if(mysql_query("INSERT INTO arama(kelime,link) values('$link','$linik')")) { // veritabanına ekliyoruz
}
}
}
}
?>gogil.php<?php
$ref=@$_SERVER['HTTP_REFERER'];
if (eregi("google.com", $ref)) {
include ("googlearama.php");
}
?>kelimelerin listelendiği sayfa : gogilkelime.php :
<br><br><br><br>
<table align="center" width="%70">
<tr><td>
Google Arama Kelimeleri</td></tr><tr><td>
<?php
$m_minFont = 85; // The minimum font size. No keywords will be smaller than this. This is a %
$m_maxFont = 150; // The maximum font size. No keywords will be bigger than this. This is a %
$m_averageFont = 100; // The font size of an average searhced for keyword. This is a %
$m_maxEntries = 50; // Maximum number of entries displayed in the cloud
$m_showCount = 0; // Whether counts are shown along with each entry
$m_blackList = array();
$maxEntries = $m_maxEntries;
function _validKeyword($k)
{
global $m_blackList;
if (!(strpos($k,"site:") === FALSE))
{
return FALSE;
}
foreach ($m_blackList as $w)
{
if (!(strpos($k,$w) === FALSE))
{
return FALSE;
}
}
return TRUE;
}
$sql = mysql_query("SELECT * FROM arama order by hit DESC limit $maxEntries");
$rec = $sql;
$numRows = mysql_num_rows($rec);
if ($numRows == 0)
{
return;
}
while ($datas = mysql_fetch_array($rec))
{
$d[] = $datas;
}
$minFont=$m_minFont;
$maxFont=$m_maxFont;
$averageFont=$m_averageFont;
usort($d,_cmpKw);
$count=0;
foreach ($d as $datas)
{
$sum += $datas['hit'];
$count++;
}
if ($count == 0)
{
$avg = 1;
}
else
{
$avg = $sum / $count;
}
foreach ($d as $datas)
{
if (!_validKeyword($datas['kelime']))
{
continue;
}
$a = $datas['hit'] / $avg;
$fontSize = ceil($a * $averageFont);
if ($fontSize < $minFont)
{
$fontSize = $minFont;
}
if ($fontSize > $maxFont)
{
$fontSize = $maxFont;
}
if ($m_showCount)
{
$countText = "<span style='font-size:$minFont%'>$datas[hit]</span>";
}
else
{
$countText = "";
}
if ($a > 0.8)
{
echo " <b><a href='$datas[link]' style='font-size:$fontSize%'>$datas[kelime]</a></b> $countText \n";
}
else
{
echo " <a href='$datas[link]' style='font-size:$fontSize%'>$datas[kelime]</a> $countText \n";
}
}
function _cmpKw($a,$b)
{
return strcmp($a['kelime'],$b['kelime']);
}
?>
</td></tr>
</table>veritabanı bağlantısını sonradan yaparsınız kendiniz.DEMO : P O P M U N D O Destek-Ana Sayfa
Sayfanın altında görebilirsiniz.
Kullanımı:
1-) include("gogil.php"); yi tüm sayfalara ekliyoruz böylece googleden geldiyse ziyaretçi kelime ekleniyor vs..
2-) include("gogilkelime.php"); yi kelimeleri gösterceğiniz sayfalara ekliyorsunuz.
3-) sql kodlarımızı çalıştırıp tablomuzu oluşturuyorsunuz.
İşte bu kadar
yorumlarınızı bekliyorum
