yenilmem.com

Archive for the 'Php' Kategori

Birkaç xajax örneği.

PHP:
  1. <?php
  2. require ('xajax_core/xajax.inc.php');
  3. $xajax = new xajax();
  4. $xajax->configure('javascript URI', './');
  5.  
  6. $xajax->registerFunction('ekranaYaz');
  7.  
  8. function ekranaYaz() {
  9.     $objResponse = new xajaxResponse();
  10.  
  11.     $text = date("Y-m-d H:i:s");
  12.     $objResponse->assign('raporYeri', 'innerHTML', $text);
  13.  
  14.     return $objResponse;
  15. }
  16.  
  17.  
  18. $xajax->registerFunction('renginiDegistir');
  19. function renginiDegistir() {
  20.     $objResponse = new xajaxResponse();
  21.  
  22.     $objResponse->assign('renkYeri', 'style.background', 'red');
  23.  
  24.     return $objResponse;
  25. }
  26.  
  27.  
  28. $xajax->registerFunction('hesapla');
  29. function hesapla($a,$b) {
  30.     $objResponse = new xajaxResponse();
  31.  
  32.     $sonuc = $a + $b;
  33.  
  34.     $objResponse->assign('sonucYeri', 'innerHTML', $sonuc);
  35.  
  36.     return $objResponse;
  37. }
  38.  
  39.  
  40. $xajax->registerFunction('kullanici_kontrol');
  41. function kullanici_kontrol($kullanici_adi) {
  42.     $objResponse = new xajaxResponse();
  43.  
  44.     if(empty($kullanici_adi)) {
  45.         $cikti = "Kullanıcı adı boş olamaz";
  46.     }
  47.  
  48.     if(is_numeric($kullanici_adi)) {
  49.         $cikti = "Kulanıcı Adı sadece sayilardan oluşamaz.";
  50.     }
  51.     $objResponse->assign('kullanici_hata_yeri', 'innerHTML', $cikti);
  52.  
  53.     return $objResponse;
  54. }
  55.  
  56. $xajax->processRequest();
  57. ?>
  58.  
  59. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  60. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  61. <head>
  62.     <title>deneme xajax</title>
  63.     <?php
  64.         $xajax->printJavascript();
  65.     ?>
  66.  
  67. </head>
  68. <body style="text-align:center;">
  69.  
  70. <input type="button" value="buton" onclick="xajax_ekranaYaz();">
  71.  
  72. <input type="button" value="renk butonu" onclick="xajax_renginiDegistir();">
  73.  
  74. <table border=1>
  75. <tr>
  76.     <td id="raporYeri">  burasi degisecek </td>
  77. </tr>
  78. <tr>
  79.     <td id="renkYeri">  renk yeri </td>
  80. </tr>
  81. </table>
  82.  
  83.  
  84.  
  85. <table border=1>
  86. <tr>
  87.     <td><input type="text" name="a" id="a"></td>
  88. </tr>
  89. <tr>
  90.     <td><input type="text" name="b" id="b"></td>
  91. </tr>
  92. <tr>
  93.     <td id="sonucYeri"> sonuc buraya gelecek</td>
  94. </tr>
  95. <tr>
  96.     <td>
  97.     <input type="button" value="hesapla" onclick="xajax_hesapla( document.getElementById('a').value , document.getElementById('b').value );">
  98.  
  99.     <br>
  100.     <a href="javascript:void(0);" onclick="xajax_hesapla( document.getElementById('a').value , document.getElementById('b').value );"> hesapla </a>
  101.  
  102.     </td>
  103. </tr>
  104. </table>
  105.  
  106.  
  107. <br>
  108.  
  109.  
  110. <table border=1>
  111. <tr>
  112.     <td>
  113.         kullanıcı adı: <input type="text" name="kullaniciadi" id="kullaniciadi" onBlur="xajax_kullanici_kontrol(document.getElementById('kullaniciadi').value)">
  114.         <div id="kullanici_hata_yeri"></div>
  115.     </td>
  116. </tr>
  117. <tr>
  118.     <td>
  119.         sifre: <input type="text" name="sifre" id="sifre">
  120.         <div id="sifre_hata_yeri"></div>
  121.     </td>
  122. </tr>
  123. <tr>
  124.     <td></td>
  125. </tr>
  126. </table>

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader

ZF'de bu uyariyi düzeltmek için,

bootstrap.php dosyasındaki
require_once("Zend/Loader.php");
Zend_Loader::registerAutoload();

satırlarını;

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);

ile değiştirin.
sorununuz çözülmüş olacak.

Ç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://xajaxproject.org/en/download/ adresinden indirebilirsiniz.

comet eklentisi : http://xajaxproject.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. :)