Archive for the 'Php' Kategori

php ile sayı yazıya çeviren fonksiyon;

1=bir
11=on bir
1020=bin yirmi
...

PHP:
  1. <?php
  2. /**
  3. * sayıyı yazıya çevirir
  4. * @param integer $sayi
  5. * @author ayhan barış
  6. */
  7. function sayi2yazi($sayi) {
  8.     $on_ek = '';
  9.     if ($sayi<0) {
  10.         $on_ek = 'eksi ';
  11.         $sayi = abs($sayi);
  12.     }
  13.  
  14.     $barray('', 'bir ', 'iki ', 'üç ', 'dört ', 'beş ', 'altı ', 'yedi ', 'sekiz ', 'dokuz ');
  15.     $oarray('', 'on ', 'yirmi ', 'otuz ', 'kırk ', 'elli ', 'altmış ', 'yetmiş ', 'seksen ', 'doksan ');
  16.     $yarray('', 'yüz ', 'iki yüz ', 'üç yüz ', 'dört yüz ', 'beş yüz ', 'altı yüz ', 'yediyüz ', 'sekiz yüz ', 'dokuz yüz ');
  17.     $ek = array('', 'bin ', 'milyon ', 'milyar ', 'trilyon ', 'katrilyon ');
  18.  
  19.     $virgullu_sayi = number_format($sayi);
  20.     $gruplanmis_sayi = explode(',', $virgullu_sayi);
  21.     $uclu_sayisi = count($gruplanmis_sayi);
  22.  
  23.     $cikti = '';
  24.     for ($ii=0;$ii<$uclu_sayisi;$ii++) {
  25.         $isayi = $gruplanmis_sayi[$ii];
  26.         $isayi = str_pad($isayi, 3, '0', STR_PAD_LEFT);
  27.  
  28.         $isayi = strval($isayi);
  29.  
  30.         if ($isayi[0]> 0) {
  31.             $cikti .= $y[$isayi[0]];
  32.         }
  33.  
  34.         if ($isayi[1]> 0) {
  35.             $cikti .= $o[$isayi[1]];
  36.         }
  37.  
  38.         if (  ($uclu_sayisi - $ii -1) == 1 ) {
  39.             # binler yeri
  40.             if ( $isayi> '001' ) {
  41.                 $cikti .= $b[$isayi[2]];
  42.             }
  43.         }
  44.         elseif ($isayi[2]> 0) {
  45.             $cikti .= $b[$isayi[2]];
  46.         }
  47.  
  48.         $cikti .= $ek[ ($uclu_sayisi - $ii -1)];
  49.     }
  50.  
  51.     $cikti = $on_ek . $cikti;
  52.  
  53.     # ozel durumlar
  54.     if ($sayi == 0) {
  55.         $cikti = 'sıfır';
  56.     }
  57.  
  58.     return $cikti;
  59. }
  60.  
  61. echo sayi2yazi(1020);
  62.  
  63. ?>

Son yılların popüler konusu, yazılım geliştirme metotları (stilleri).

http://tr.wikipedia.org/wiki/Tasar%C4%B1m_%C3%B6r%C3%BCnt%C3%BCleri

Türkçe PHP örnekleri:
http://ysfkc.com/php/signleton-desing-pattern-oop-yazilim-deseni.html
http://ysfkc.com/php/factory-design-pattern.html
http://ysfkc.com/php/adapter-design-pattern.html
http://ysfkc.com/php/php-decorate-design-pattern.html
http://ysfkc.com/php/prototype-pattern.html

* yeni nesil programcılar yeni nesil kod yazma mimari yapılarını çok seviyor :)

Kitaplar:
http://www.amazon.com/php-architects-Guide-Design-Patterns/dp/0973589825/ref=sr_1_1?ie=UTF8&qid=1301913319&sr=8-1

http://www.amazon.com/Professional-Design-Patterns-Wrox-Programmer/dp/0470496703/ref=sr_1_3?ie=UTF8&qid=1301913319&sr=8-3

http://www.amazon.com/PHP-Action-Objects-Design-Agility/dp/1932394753/ref=sr_1_5?ie=UTF8&qid=1301913319&sr=8-5

http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=sr_1_2?ie=UTF8&qid=1301913296&sr=8-2

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?s=books&ie=UTF8&qid=1301913874&sr=1-1 (vikipedia’da konusu gecen GoF)

arkadaşlar merhaba,

- php-tr.com (portal + forum)
- ve facebook da : PHP-TR

bir oluşumumuz var.

gittigidiyor, secretcv, sahibinden... ceşitli firmalarda calişan PHP'ci arkadaşlar ile ilk toplantımızı kadikoyde yaptik.

etkinlikler hakkında bilgilendirilmek için lütfen face'deki grubumuza uye olur.

tşk...

PHP ile Çok Basit Bir "Ziyaretçi Defteri Örneği" yapalım.

Veritabanı tablomuz :

SQL:
  1. CREATE TABLE IF NOT EXISTS `ziyaretci` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `ad` varchar(60) NOT NULL,
  4.   `soyad` varchar(60) NOT NULL,
  5.   `email` varchar(255) NOT NULL,
  6.   `yorum` text NOT NULL,
  7.   `tarih` date NOT NULL,
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM  ;

PHP kodlarımız:

PHP:
  1. <?php
  2. # form gonderidldi mi?
  3. if(!empty($_POST)){
  4.     # evet, formu gondermiş, kayit işlemini yap
  5.  
  6.     mysql_connect("localhost","root","");
  7.     mysql_select_db("kurs");
  8.  
  9.     $ad = addslashes($_POST['ad']);
  10.     $soyad = addslashes($_POST['soyad']);
  11.     $email = addslashes($_POST['email']);
  12.     $yorum = addslashes($_POST['yorum']);
  13.  
  14.     $tarih = date("Y-m-d"); # 2010-12-31
  15.  
  16.     $SQL = "INSERT INTO ziyaretci SET ad='$ad', soyad='$soyad', email='$email', yorum='$yorum', tarih='$tarih' ";
  17.  
  18.     $sorgu = mysql_query($SQL);
  19.  
  20.     echo "<font color='blue'> Kayıt yapıldı. Teşekkür ederiz... </font>";
  21. }
  22. ?>
  23.  
  24. <FORM METHOD=POST ACTION="">
  25.  
  26. <TABLE>
  27. <TR>
  28.     <TD>Ad</TD>
  29.     <TD>:</TD>
  30.     <TD><INPUT TYPE="text" NAME="ad"></TD>
  31. </TR>
  32. <TR>
  33.     <TD>Soyad</TD>
  34.     <TD>:</TD>
  35.     <TD><INPUT TYPE="text" NAME="soyad"></TD>
  36. </TR>
  37. <TR>
  38.     <TD>Email</TD>
  39.     <TD>:</TD>
  40.     <TD><INPUT TYPE="text" NAME="email"></TD>
  41. </TR>
  42. <TR>
  43.     <TD>Yorum</TD>
  44.     <TD>:</TD>
  45.     <TD><TEXTAREA NAME="yorum" ROWS="5" COLS="45"></TEXTAREA></TD>
  46. </TR>
  47. <TR>
  48.     <TD></TD>
  49.     <TD></TD>
  50.     <TD><INPUT TYPE="submit" value="Kaydet"></TD>
  51. </TR>
  52. </TABLE>
  53.    
  54. </FORM>
  55.  
  56. <BR><BR><BR><BR>
  57.  
  58. <?php
  59.  
  60. $SQL="SELECT * FROM ziyaretci ORDER BY id DESC";
  61. $sorgu = mysql_query($SQL);
  62.  
  63. echo "<table border=1>";
  64.  
  65. $ii=0;
  66.  
  67. while( $sira=mysql_fetch_object($sorgu) ){
  68.        
  69.         $ii = $ii + 1;
  70.         if($ii % 2 == 0){
  71.             $bgcolor="#FFFF00";
  72.         }
  73.         if($ii % 2 == 1){
  74.             $bgcolor="#00FF00";
  75.         }
  76.  
  77.        
  78.        
  79.         echo "<tr bgcolor='$bgcolor'>";
  80.             echo "<td> $sira->id </td>";
  81.             echo "<td> $sira->ad </td>";
  82.             echo "<td> $sira->soyad </td>";
  83.             echo "<td> $sira->email </td>";
  84.             echo "<td> $sira->yorum </td>";
  85.             echo "<td> $sira->tarih </td>";
  86.         echo "</tr>";
  87. }   
  88. echo "</table>";
  89.  
  90. ?>

PHP Telefon Rehberi Örneği Kodlar + Veritabanı şeklinde indirebilirsiniz.

İndir : php-telefon-rehberi.rar

Aşağıdaki ufak kod ile sahibinden.com dan ilan numarasi verilen size ait ilanın başlığını alabilirsiniz.

PHP:
  1.  
  2. $detay_url = "http://www.sahibinden.com/23584495";
  3. $detay_dosya = file_get_contents($detay_url);
  4.  
  5. # baslik
  6. $aranan = '/<tr><td><span>(.*?)<td width="150px" align="right">/is';
  7. preg_match($aranan, $detay_dosya, $sonuc);
  8. $baslik = strip_tags($sonuc[1]);
  9. $baslik = addslashes(trim($baslik));
  10.  
  11. echo "$baslik";

Bot yada parse işlemlerinde karşi server sizin ip adresinizi banladı ise bunu aşmak çok kolay.
Proxy kullanın.

PHP:
  1. $opts = array(
  2.         'http'=>array(
  3.             'method'=>"GET",
  4.             'max_redirects' => 99,
  5.             'request_fulluri' => true,
  6.             'user_agent' => Mozilla/3.04Gold (X11; U; IRIX 5.3 IP22),
  7.  
  8.             'proxy' => 'tcp://201.245.161.4:8080',
  9.  
  10.             'header'=>"Accept-language: en\r\n".
  11.             "Referer: http://www.google.com/\r\n" .
  12.             "Cookie: varsa=cerez-bilgisi \r\n" .
  13.             "User-Agent: Mozilla/3.04Gold (X11; U; IRIX 5.3 IP22) \r\n"
  14.         )
  15.     );
  16.  
  17.     //print_r($opts);
  18.  
  19.     $context = stream_context_create($opts);
  20.     $d = file_get_contents($url, FILE_TEXT, $context);

Bugun GittiGidiyor.com Blog'da "Zend PHP5 Sınavı ile Bilginizi Sertifikalandırın" yazım yayınlandı.

Buradan okuyabilirsiniz:
http://blog.gittigidiyor.com/2010/03/30/zend-php5-sinavi-ile-bilginizi-sertifikalandirin/

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.