Archive for the 'Php' Kategori

Çok boyutlu bir dizide istediğim alana göre sıralama yapabilmek .
işte örnek bir kod:

PHP:
  1. foreach ($data as $row){
  2.     $smarty_data[$ii]['title'] = $row->title;
  3.     $smarty_data[$ii]['visit_count'] = $ziyaretler[$row->urun_id];
  4.     $ii++;
  5. }
  6.  
  7. function cmp($a, $b) {
  8.     if ($a['visit_count'] == $b['visit_count']) {
  9.         return 0;
  10.     }
  11.     return ($a['visit_count'] <$b['visit_count']) ? 1 : -1;
  12. }
  13.  
  14. usort($smarty_data, "cmp");

PHP:
  1. /**
  2. * dakikayi okunabilir saat:dakika şekline çevirir
  3. * * * ör:65 => 01:05
  4. *
  5. * @param integer $mins
  6. * @return string
  7. */
  8. function m2h($mins) {
  9.     if ($mins <0) {
  10.         $min = Abs($mins);
  11.     } else {
  12.         $min = $mins;
  13.     }
  14.     $H = Floor($min / 60);
  15.     $M = ($min - ($H * 60)) / 100;
  16.     $hours = $H$M;
  17.     if ($mins <0) {
  18.         $hours = $hours * (-1);
  19.     }
  20.     $expl = explode(".", $hours);
  21.     $H = $expl[0];
  22.     if (empty($expl[1])) {
  23.         $expl[1] = 00;
  24.     }
  25.     $M = $expl[1];
  26.     if (strlen($M) <2) {
  27.         $M = $M . 0;
  28.     }
  29.     $hours = $H . ":" . $M;
  30.     return $hours;
  31. }

Örnek :
echo m2h(65);

Zend Studio 7.0.0 Çıktı

http://www.zend.com/en/products/studio/
http://static.zend.com/topics/Zend-Studio-Release-Notes-700.txt

comet pek bilinmeyen, kullanılmayan ama ustasının ellerinde cok faydalı sonuclar ortaya çıkaran bir yöntem.
php xajax kullanlar ajax yontemi ile server'a istekler gönderebiliyorlar peki ya bunun tam tersi nasıl olurdu,
yani server size data gönderse ? :)

örneğin bir chat scripti;
-bunu temel mantığı her 3 saniyede bir server'a istek gönder yeni mesaj varmı sor varsa yeileri al client ekranında göster.
-comet ile bir chat sripti yaparsak 3 saniyede yeni mesaj varmı diye sorma işlemi ortadan kalkıyor, yeni mesaj varsa server client a kendisi gönderiyor.

comet:
aslında çok kompleks bişey değil , ana fikir şu: server ile client arasında uzun ömürli bir http bağlantısı aç, işlemleri bu bağlanti üzerinden gerçekleştir.

xajax + comet
php xajax kütüphanesini : http://xajax-project.org/en/download/ adresinden indirebilirsiniz.

comet eklentisi : http://xajax-project.org/developer/q_no/Comet/comet.php adresinden indirebilirsiniz.

Basit bir örnek :
ne iş görecek : 100 e kadar sayacak, fakat herhangi bir istekte bulunmayacağız, sayıları server bize gönderecek.
(more...)

2009 Yerel seçimleri bize yaradı :) Güncel ilçeler veritabanı ihtiyacı olanlar bunları kullanabilir.

PHP:
  1. <?php
  2. /*
  3. DROP TABLE IF EXISTS `ilceler`;
  4. CREATE TABLE  ``ilceler` (
  5.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  6.   `il_id` int(10) unsigned NOT NULL DEFAULT '0',
  7.   `ilce` varchar(255) NOT NULL DEFAULT '',
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE=InnoDB AUTO_INCREMENT=974 DEFAULT CHARSET=utf8;
  10. */
  11.  
  12. mysql_connect("localhost","root","");
  13. mysql_select_db("ililce");
  14.  
  15. $SQL="SET NAMES 'utf8' ";
  16.  
  17. for ($ii=1;$ii<82;$ii++) {
  18.     $f = file_get_contents("http://www.milliyet.com.tr/Secim2009/api/belediyelist.ashx?sehirid=".$ii);
  19.    
  20.     $t1 = explode(";",$f); # 197#Tatvan
  21.    
  22.     foreach ($t1 AS $key=>$val) {
  23.        
  24.         $t2 = explode("#",$val);
  25.         $ilce=$t2[1];
  26.                
  27.         $SQL="INSERT INTO ilceler SET il_id='$ii',ilce='$ilce' ";
  28.         mysql_query($SQL);
  29.         //echo $SQL;
  30.        
  31.     }   
  32. }
  33. ?>

Faktoriyel:

PHP:
  1. <?php
  2. function factorial( $n ) {
  3.    if ($n == 0 || $n== 1)  {
  4.    // $n == 0 or $n == 1 ise fonsiyon biter
  5.     return 1;
  6.   }
  7.   else  {
  8.   // recursif cagri yap
  9.      return ( $n * factorial ($n-1));
  10.   }
  11. }
  12. ?>

Fibonacci Serisi:

PHP:
  1. <?php
  2. function fibonacci ($n) {
  3.   if ($n == 1 || $n == 2)  {
  4.     return 1;
  5.   }
  6.   else {
  7.     return fibonacci( $n - 1)+fibonacci( $n - 2 );
  8.   }
  9. }
  10. ?>

CSS Tab Designer 2.0 programı ile cok sade ve güzel tab menuler yapabilirsiniz.

sitenize google translate ile tercüme ve cok dil özelliği ekleyin.
örnegini : www.bilgicenneti.com ' da görebilirsiniz.

PHP:
  1. <?php
  2. function curPageURL() {
  3.  $pageURL = 'http';
  4.  if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
  5.  $pageURL .= "://";
  6.  if ($_SERVER["SERVER_PORT"] != "80") {
  7.   $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
  8.  } else {
  9.   $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  10.  }
  11.  return $pageURL;
  12. }
  13.  
  14. $url=curPageURL();
  15.  
  16. $lang['en']="English";
  17. $lang['de']="German";
  18. $lang['it']="Italian";
  19. $lang['el']="Greek";
  20. $lang['fr']="France";
  21. $lang['pl']="Polish";
  22. $lang['ru']="Russian";
  23. $lang['es']="Spannish";
  24. $lang['uk']="Ukrainian";
  25. $lang['bg']="Bulgarian";
  26. $lang['nl']="Dutch";
  27. $lang['fi']="Finnish";
  28. $lang['hi']="Hindi";
  29. $lang['ja']="Japanese";
  30. $lang['no']="Norwegian";
  31. $lang['tr']="Türkçe";
  32. sort($lang);
  33.  
  34. foreach($lang AS $key=>$val) {
  35.     ?>
  36.     <a href="http://translate.google.com/translate?prev=hp&hl=en&u=<?=$url?>&sl=tr&tl=<?=$key?>" target="_blank" name="<?=$val?>" title="<?=$val?>">
  37.         <img src="/images/flags/<?=$key?>.gif" border=0 align="absmiddle" alt="<?=$val?>" title="<?=$val?>">&nbsp;
  38.     </a>
  39.     <?php
  40. }
  41. ?>

*** resim dosyalarini bulmak size ait. :)

PHP ve Smarty ikilisini kullanıyorsanız birgün mutlaka çok dilli site yapma ihtiyacınız olacaktır.
Smarty temalarınıza dil desteği eklemek için birkaç yöntem var.
Bunlardan en basiti farklı dillere farklı .tpl ler oluşturmak. Uzun vadede çok masraflı bir iş olarak görünüyor. Bu şıkkı eleyelim.

Benim istediğim yönetilebilen diller ekle, çıkart, tercüme et gibi seçenekleri olan bir panel.

Öncelikle veritabanını tasarlayalim:
3 tablomuz var; diller, diller için key tanımlamaları, keylerin tercümeleri.

(more...)

Örnek üzerinde anlatım daha kolay olacak;

HTML:
  1. .yuvarlak_koseler {
  2.     border: 2px solid #0000FF;
  3.     -moz-border-radius: 5px;
  4. }
  5. option.imagebacked {
  6.     padding: 2px 0 2px 20px;
  7.     background-repeat: no-repeat;
  8.     background-position: 1px 2px;
  9.     vertical-align: middle;
  10.     -moz-border-radius: 5px;
  11. }
  12. </style>
  13.  
  14. <select name="issuetype" id="issuetype" class="yuvarlak_koseler">
  15.  
  16. <option  value="1" class="imagebacked" style="background-image: url(http://technology.amis.nl/blog/wp-content/plugins/social-dropdown/icons/blinkbits.png);" selected>Bug</option>
  17. <option value="2" class="imagebacked" style="background-image: url(http://technology.amis.nl/blog/wp-content/plugins/social-dropdown/icons/blinkbits.png);">New Feature</option>
  18. <option value="3" class="imagebacked" style="background-image: url(http://technology.amis.nl/blog/wp-content/plugins/social-dropdown/icons/blinkbits.png);">Task</option>
  19. <option value="4" class="imagebacked" style="background-image: url(http://technology.amis.nl/blog/wp-content/plugins/social-dropdown/icons/blinkbits.png);">Improvement</option>
  20.  
  21. </select>