[ders] Scriptleriniz için WP tarzı Etiket bulutu fonksiyonu
21
●2.079
- 02-05-2008, 19:48:27Üyeliği durdurulduVermemişmiyim bunu yav

özür.. ben ekledim diye hatırlıyordum
demo :
Etiket Bulutu
<?php header('Content-type: text/html; charset="iso-8859-9"', true); $host = "localhost"; $username = "root"; $password = " şifre"; $table_name = " db "; $dbh=mysql_connect ($host, $username, $password) or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ($table_name); function dost_Linkler($url) { $url = trim($url); $url = strtolower($url); $find = array('<b>', '</b>'); $url = str_replace ($find, '', $url); $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url); $find = array('ı','İ'); $url = str_replace($find, 'i', $url); $find =array('Ş','ş'); $url = str_replace ($find, 's', $url); $find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>'); $url = str_replace ($find, '-', $url); $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê'); $url = str_replace ($find, 'e', $url); $find = array('í', 'i', 'ì', 'î', 'ï', 'ı', 'I', 'I', 'Í', 'Ì', 'Î', 'Ï', 'İ'); $url = str_replace ($find, 'i', $url); $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô'); $url = str_replace ($find, 'o', $url); $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â'); $url = str_replace ($find, 'a', $url); $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û'); $url = str_replace ($find, 'u', $url); $find = array('ç', 'Ç'); $url = str_replace ($find, 'c', $url); $find = array('s', 'ş', 'S', 'Ş'); $url = str_replace ($find, 's', $url); $find = array('g', 'ğ', 'G', 'Ğ'); $url = str_replace ($find, 'g', $url); $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); $repl = array('', '-', ''); $url = preg_replace ($find, $repl, $url); $url = str_replace ('--', '-', $url); return $url; } //etiketleri alacağınız tabloyu seçin //altta $r[e_tr]; war orda e_tr ye etiketleri tabloda hangi field dan alıyorsanız işte onu yazın... $q = mysql_query("select * from etiketler order by rand() "); $etk= ""; if(mysql_num_rows($q) > 0) { while ($r = mysql_fetch_array($q) ) { $etk.= str_replace(" ", "_", $r[e_tr])." "; } } // Etiket Arrayımız $etiketArray = array(); // kelimeler $etiketler = $etk; // kelimeleri say foreach( str_word_count( $etiketler, 1, 'ıİüÜöÖğĞşŞçÇ1234567890' ) as $etiket ) { // Tekrarlanmayı silip saymayı attır array_key_exists( $etiket, $etiketArray ) ? $etiketArray[ $etiket ]++ : $etiketArray[ $etiket ] = 0; } // ============================================================== // = Bulutla Fonksiyonumuz = // ============================================================== function bulutla( $etiketArray, $enDusukFont = 12, $enYuksekFont = 30 ) { $minSay = min( array_values( $etiketArray ) ); $maxSay = max( array_values( $etiketArray ) ); $spread = $maxSay - $minSay; $bulutArray = array(); $spread == 0 && $spread = 1; foreach( $etiketArray as $etiket => $say ) { $size = $enDusukFont + ( $say - $minSay ) * ( $enYuksekFont - $enDusukFont ) / $spread; $bulutArray[] = '<a style="font-size: ' . floor ( $size ) . 'px' . '" class="tag_cloud" href="http://siteniz.com/etiket/' . dost_Linkler($etiket) . '" title="\'' . $etiket . '\' toplam bulunan ' . $say . '">' . str_replace("_", " ", $etiket) . '</a>'; } return join( "\n", $bulutArray ) . "\n"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> <title>Etiket Bulutu</title> <style type="text/css" media="screen"> .tag_cloud { padding: 3px; text-decoration: none; } .tag_cloud:link { color: #81d601; } .tag_cloud:visited { color: #019c05; } .tag_cloud:hover { color: #ffffff; background: #69da03; } .tag_cloud:active { color: #ffffff; background: #ACFC65; } </style> </head> <body> <fieldset style="background:#FF6600; padding:5px; border:#FF6000 5px dashed; width:480px;"> <legend style="font-size:25px; color:#333333; border:#FF6000 3px solid; background:#FF6600; padding:5px;">Etiket Bulutu</legend> <div style="width:500px;"> <?php echo bulutla( $etiketArray ); ?> </div> </fieldset> </body> </html> - 03-05-2008, 13:09:55Üyeliği durduruldu
//dbye bağlayan fonksiyon yada ayar dosyası.... //db tablosu id, etiket tablo adı etiketler //&& strlen($etiket) > 2 ve daha az karakterden oluşuyor ise alma bu kısmı kaldırabilirsiniz... $etiketler = "PHP php php php php php php asp html java js php js asp html js js php php php php asp js javascript js soru cevap hazir"; $etiket2 = explode(" ", $etiketler); foreach ($etiket2 as $etiket) { if (!empty($etiket) && strlen($etiket) < 2 ) { $q = mysql_query("select * from etiketler where etiket = '".$etiket."'"); if(mysql_num_rows($q) == 0 ) { $islem = mysql_query("insert into etiketler (etiket) values ('".$etiket."')"); echo "dbye eklenen etiket: ".$etiket."<br />\n"; } else { echo "bu etiket zaten dbde var...<br />\n"; } } } echo "işlem sona erdi.... "; - 03-05-2008, 14:01:08alp3r3r kodlar için sağol ancak ben hata aldım.alp3r3r adlı üyeden alıntı: mesajı görüntüle
hata ise:
Warning: Wrong parameter count for str_word_count() in /usr/hosts/domains/xxxxx/www.xxxxxx.com/httpdocs/etiket3.php on line 84
Warning: Invalid argument supplied for foreach() in /usr/hosts/domains/xxxxx/www.xxxxxx.com/httpdocs/httpdocs/etiket3.php on line 84
Warning: min() [function.min]: Array must contain atleast one element in /usr/hosts/domains/xxxxx/www.xxxxxx.com/httpdocs/etiket3.php on line 95
Warning: max() [function.max]: Array must contain atleast one element in /usr/hosts/domains/xxxxx/www.xxxxxx.com/httpdocs/etiket3.php on line 96
Hata alınan satırlar:
84. Satır : foreach( str_word_count( $etiketler, 1, 'ıİüÜöÖğĞşŞçÇ1234567890' ) as $etiket )
95.Satır: $minSay = min( array_values( $etiketArray ) );
96.Satır: $maxSay = max( array_values( $etiketArray ) );