<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Göktuğ ÖZTÜRK</title>
	<atom:link href="http://www.goktugozturk.com.tr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.goktugozturk.com.tr</link>
	<description>Kişisel Günlük</description>
	<lastBuildDate>Sun, 18 Apr 2010 14:32:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>window.onhashchange Event</title>
		<link>http://www.goktugozturk.com.tr/programlama/javascript/window-onhashchange-event/</link>
		<comments>http://www.goktugozturk.com.tr/programlama/javascript/window-onhashchange-event/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 13:48:57 +0000</pubDate>
		<dc:creator>Göktuğ ÖZTÜRK</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.goktugozturk.com.tr/?p=79</guid>
		<description><![CDATA[Javascript framework'lerinin ve Ajax ile çalışan dinamik sayfaların sayısı arttıkça adreslerin anchor kullanarak çalışan uygulamaların sayısı artmaya başladı. Bu uygulamalara en büyük örnekler olarak gmail ve facebook verilebilir. 
Çoğunuz gmailde gezinirken sadece sayfa adresinin sonundaki # işaretinden sonraki kısımın değiştiğini ve tarayıcının ileri/geri okları ile gezildiğinde sayfanın da buna göre değiştiğini farketmiştir.

Bu işlemi yapmanın en [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript framework'lerinin ve Ajax ile çalışan dinamik sayfaların sayısı arttıkça adreslerin anchor kullanarak çalışan uygulamaların sayısı artmaya başladı. Bu uygulamalara en büyük örnekler olarak gmail ve facebook verilebilir. </p>
<p>Çoğunuz gmailde gezinirken sadece sayfa adresinin sonundaki # işaretinden sonraki kısımın değiştiğini ve tarayıcının ileri/geri okları ile gezildiğinde sayfanın da buna göre değiştiğini farketmiştir.<br />
<span id="more-79"></span><br />
Bu işlemi yapmanın en basit yolu bir interval ile düzenli olarak url'yi kontrol edip, değiştiğinde ilgili fonksiyonu çalıştırmaktır. </p>
<pre class="brush: js">
// setInterval ile url'yi 300 milisaniyede bir kontrol eden basit bir örnek;
window.onload = new function() {
	setInterval( "hashCheck()", 300 );
}

var currentHash = null;
var query = location.href.split('#');
if( query[1] != undefined )
	currentHash = query[1]; 

function hashCheck(){
	var query = location.href.split('#');
	if( query[1] != currentHash )
	{
		currentHash = query[1];
		// Buradan sonra gerekli işlemleri yapacak olan onHashChange() fonksiyonu çağrılacaktır.
		onHashChange();
	}
}

function onHashChange(){
	// Bu fonksiyonun içinde istediğiniz işlemleri yapabilirsiniz.
}
</pre>
<p>Bu fonksiyon sürekli olarak tetiklendiği için sitenizi ziyaret eden kişilerin tarayıcısına fazladan bir yük oluşturmaktadır. Başka bir yaklaşım olarak kullanılan bir iframe methodu da bulunmaktadır. </p>
<p>Bu yöntemde ise hashchange methoduyla birlikte gizli bir iframe'in içeriği de güncellenmekte ve onscroll event'ine eklenen fonksiyon aracılığı ile onhashchange özelliği taklit edilmektedir. Bu yöntemle ilgili örnek kodu ve detaylı açıklamayı <a href="http://www.zachleat.com/web/2008/08/21/onhashchange-without-setinterval/" onclick="pageTracker._trackPageview('/outgoing/www.zachleat.com/web/2008/08/21/onhashchange-without-setinterval/?referer=');">onhashchange-without-setinterval</a> adresinden bulabilirsiniz.</p>
<p>Bu sorunun çözümü olarak HTML5 ile birlikte gelen yeni bir window event'i bulunuyor. İsmi "<em>onhashchange</em>". Bu olay şu anda Internet Explorer 8, Firefox 3.6 ve Chrome 5 tarafından destekleniyor. Yukarıda yazdığım fonksiyona onhashchange olayını da eklediğimizde son kod aşağıdaki gibi olmaktadır.</p>
<pre class="brush: js">
// setInterval ile url'yi 300 milisaniyede bir kontrol eden basit bir örnek;
if('onhashchange' in window)
{
	window.onhashchange = new function() {
		onHashChange();
	}
} else {
	var currentHash = null;
	var query = location.href.split('#');
	if( query[1] != undefined )
		currentHash = query[1]; 

	window.onload = new function() {
		setInterval( "hashCheck()", 300 );
	}
}

function hashCheck(){
	var query = location.href.split('#');
	if( query[1] != currentHash )
	{
		currentHash = query[1];
		// Buradan sonra gerekli işlemleri yapacak olan onHashChange() fonksiyonu çağrılacaktır.
		onHashChange();
	}
}

function onHashChange(){
	// Bu fonksiyonun içinde istediğiniz işlemleri yapabilirsiniz.
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.goktugozturk.com.tr/programlama/javascript/window-onhashchange-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perfect (Golden) Numbers</title>
		<link>http://www.goktugozturk.com.tr/programlama/php/perfect-golden-number/</link>
		<comments>http://www.goktugozturk.com.tr/programlama/php/perfect-golden-number/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 06:45:27 +0000</pubDate>
		<dc:creator>Göktuğ ÖZTÜRK</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.goktugozturk.com.tr/?p=58</guid>
		<description><![CDATA[Mükemmel (Altın) sayılar dün gittiğim bir iş görüşmesinde karşıma çıkan bir mülakat sorusuydu. Görüşmede, verilen sayı mükemmel sayı ise true, değilse false döndüren bir fonksiyon yazmam istenmişti.
Öncelikle mükemmel sayıların ne olduğundan bahsetmek gerekiyor sanırım. Altın sayılar kendisi haricindeki pozitif bölenlerinin toplamı kendisine eşit olan sayılara denir. Örnek vermek gerekirse 6'nın pozitif bölenlerinin (1,2,3) toplamı yine [...]]]></description>
			<content:encoded><![CDATA[<p>Mükemmel (Altın) sayılar dün gittiğim bir iş görüşmesinde karşıma çıkan bir mülakat sorusuydu. Görüşmede, verilen sayı mükemmel sayı ise <em>true</em>, değilse <em>false</em> döndüren bir fonksiyon yazmam istenmişti.</p>
<p>Öncelikle mükemmel sayıların ne olduğundan bahsetmek gerekiyor sanırım. Altın sayılar kendisi haricindeki pozitif bölenlerinin toplamı kendisine eşit olan sayılara denir. Örnek vermek gerekirse 6'nın pozitif bölenlerinin (1,2,3) toplamı yine 6 olduğu için 6 bir altın sayıdır. Aynı şekilde 28'in bölenleri (1,2,4,7,14) toplamı da kendisine eşit olduğundan 28'de bir altın sayıdır. Daha detaylı bilgi için <a href="http://en.wikipedia.org/wiki/Perfect_number" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Perfect_number?referer=');">Wikipedia: Perfect Number</a> konusunu inceleyebilirsiniz.</p>
<p>Birçok kişi "çok kolay" 1'den o sayıya kadar döner, tam bölenlerin toplamına bakarız diyecektir. Fakat bu method 999.999 gibi bir sayıyı kontrol ediyorsanız fonksiyona 1 milyon döngü yaptırmanız anlamına geliyor. Ben görüşme esnasında 250.000 döngü ile bu sayıyı doğrulayabilecek bir çözüm sundum.</p>
<p>Aşağıda mülakat sırasında aklıma gelmeyen fakat eve giderken "neden daha önce düşünemedim" dediğim bir altın sayı doğrulama yöntemini sizlerle paylaşmak istiyorum.<br />
<span id="more-58"></span></p>
<pre class="brush: php">function is_perfect_number( $sayi )
{
  if ( ( $sayi % 2 ) == 0 )
  {
    $toplam = 3 + ( $sayi / 2 );
    $artis = 1;
  }
  else
  {
    $toplam = 1;
    $artis = 2;
  }

  $karekok = sqrt( $sayi );
  if ( is_int( $karekok ) ) $toplam += $karekok;

  for( $i = 3; $i &lt; $karekok; $i += $artis )
  {
    if ( ( $sayi % $i ) == 0 )
    {
      $toplam += $i + ( $sayi / $i );
      if ( $toplam &gt; $sayi )
        return false;
    }
  } 

  return ( $toplam == $sayi );
}</pre>
<p>Yukarıdaki fonksiyon 999.999 için ~500 döngü ile sonucu doğruluyor. Umarım işinize yarar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goktugozturk.com.tr/programlama/php/perfect-golden-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype javascript framework&#8217;ü için geliştirdiğim radio group eklentisi</title>
		<link>http://www.goktugozturk.com.tr/programlama/javascript/prototype-js-frameworku-icin-radio-group-eklentisi/</link>
		<comments>http://www.goktugozturk.com.tr/programlama/javascript/prototype-js-frameworku-icin-radio-group-eklentisi/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 16:33:19 +0000</pubDate>
		<dc:creator>Göktuğ ÖZTÜRK</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.goktugozturk.com.tr/?p=39</guid>
		<description><![CDATA[Biliyorsunuz ki Prototype genel yapı itibariyle radio group'ların seçili olan değişkenin değerini getirmiyor.
Bu sorunun çözümü dom nesne bütünlüğüne uygun görülmediği için maalesef gelecek sürümlerde eklenecekler arasında bulunmuyor.
Prototype javascript framework'ünün Form.Element.Serializers sınıfını extend eden aşağıdaki kod sayesinde $F() ve $() fonksiyonlarını radio group'ları içinde sorunsuz şekilde kullanabilirsiniz.

prototype-radio-group.js dosyasının içeriği
Form.Element.Serializers.radioSelector = function(element, value) {
  if (Object.isUndefined(value)){
 [...]]]></description>
			<content:encoded><![CDATA[<p>Biliyorsunuz ki Prototype genel yapı itibariyle radio group'ların seçili olan değişkenin değerini getirmiyor.<br />
Bu sorunun çözümü dom nesne bütünlüğüne uygun görülmediği için maalesef gelecek sürümlerde eklenecekler arasında bulunmuyor.</p>
<p>Prototype javascript framework'ünün Form.Element.Serializers sınıfını extend eden aşağıdaki kod sayesinde $F() ve $() fonksiyonlarını radio group'ları içinde sorunsuz şekilde kullanabilirsiniz.<br />
<span id="more-39"></span><br />
<em>prototype-radio-group.js dosyasının içeriği</em></p>
<pre class="brush: js">Form.Element.Serializers.radioSelector = function(element, value) {
  if (Object.isUndefined(value)){
    checkedRadio = Form.getInputs(element.form,'radio',element.name).find(function(radio) { return radio.checked; })
    return (checkedRadio) ? checkedRadio.value : null;
  } else {
    checkedRadio = Form.getInputs(element.form,'radio',element.name).find(function(radio) { return radio.value == value; });
    checkedRadio.checked = true;
  }
}

Form.Element.Serializers.input = function(element, value) {
  switch (element.type.toLowerCase()) {
    case 'checkbox':
      return Form.Element.Serializers.inputSelector(element, value);
    case 'radio':
      return Form.Element.Serializers.radioSelector(element, value);
    default:
      return Form.Element.Serializers.textarea(element, value);
  }
};</pre>
<p>Bu eklentiyi kullanırken dikkat etmeniz gerekenler:</p>
<ul>
<li>Bu javascript dosyasının web sayfasına head bölümünde prototype.js'den hemen sonra yüklenmesi gerekiyor.</li>
<li>Kullanacağınız radio group'ta sadece bir input için id tanımlamanız gerekiyor. $F() ve $() fonksiyonlarını kullanırken bu id ile işlem yapmalısınız</li>
<li>Prototype.js dosyasının 1.6.1 sürümü ile test edilmiş ve sorunsuz olarak çalıştığı görülmüştür. İleriki sürümlerinde Form.Element.Serializers sınıfında değişiklik yapılmadığı sürece sorunsuz olarak çalışmaya devam edecektir.</li>
</ul>
<p>Aşağıda bir web sayfası içerisindeki örnek kullanımını görebilirsiniz.</p>
<pre class="brush: javascript; html-script:true">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;script type="text/javascript" src="js/prototype.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/prototype-radio-group.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form&gt;
  &lt;input type="radio" id="rg_test" name="test" value="1" /&gt;1&lt;br /&gt;
  &lt;input type="radio" name="test" value="2" checked="checked" /&gt;2&lt;br /&gt;
  &lt;input type="radio" name="test" value="3" /&gt;3&lt;br /&gt;
&lt;/form&gt;
&lt;script type="text/javascript"&gt;
  alert($F('rg_test')); // Seçili olan radio değerini, yani 2'yi verecektir.
  $('rg_test').setValue('3'); // Radio grubunda seçili olan değer 3 olur.
  alert($F('rg_test')); // Yeni radio group değeri olan 3'ü verecektir.
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.goktugozturk.com.tr/programlama/javascript/prototype-js-frameworku-icin-radio-group-eklentisi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCMB Döviz Kurları Sınıfı</title>
		<link>http://www.goktugozturk.com.tr/programlama/php/tcmb-doviz-kurlari-sinifi/</link>
		<comments>http://www.goktugozturk.com.tr/programlama/php/tcmb-doviz-kurlari-sinifi/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 13:29:29 +0000</pubDate>
		<dc:creator>Göktuğ ÖZTÜRK</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.goktugozturk.com.tr/?p=14</guid>
		<description><![CDATA[Uzun zaman önce yazmış olduğum Php ile Döviz Kuru Script'ini, güncelliğini yitirdiğinden ve php.ini'ye eklenen allow_url_fopen parametresi yüzünden file ve file_get_contents fonksiyonları uzak sunuculardaki dosyalara ulaşamadığı için tekrardan yazma ihtiyacı duydum.
Aşağıda sınıfın bulunacağı doviz.php ve kullanım örneklerinin olduğu test.php dosyalarının içeriklerini bulabilirsiniz.
İyi günlerde kullanmanız dileğiyle.

doviz.php içeriği
&#60;?php

/**
 * TCMB Döviz Kurları Sınıfı.
 *
 * TCMB sunucularındaki [...]]]></description>
			<content:encoded><![CDATA[<p>Uzun zaman önce yazmış olduğum <a href="http://www.adobeturk.com/forum/php-ile-doviz-kuru-script-i-t5693.html" onclick="pageTracker._trackPageview('/outgoing/www.adobeturk.com/forum/php-ile-doviz-kuru-script-i-t5693.html?referer=');">Php ile Döviz Kuru Script</a>'ini, güncelliğini yitirdiğinden ve php.ini'ye eklenen <a href="http://www.php.net/manual/tr/filesystem.configuration.php#ini.allow-url-fopen" onclick="pageTracker._trackPageview('/outgoing/www.php.net/manual/tr/filesystem.configuration.php_ini.allow-url-fopen?referer=');">allow_url_fopen</a> parametresi yüzünden file ve file_get_contents fonksiyonları uzak sunuculardaki dosyalara ulaşamadığı için tekrardan yazma ihtiyacı duydum.</p>
<p>Aşağıda sınıfın bulunacağı doviz.php ve kullanım örneklerinin olduğu test.php dosyalarının içeriklerini bulabilirsiniz.</p>
<p>İyi günlerde kullanmanız dileğiyle.<br />
<span id="more-14"></span><br />
doviz.php içeriği</p>
<pre class="brush:php; html-script:true">&lt;?php

/**
 * TCMB Döviz Kurları Sınıfı.
 *
 * TCMB sunucularındaki Döviz Kurlarını işler.
 * Daha sonraki kullanımlar için sunucu üzerinde cache_dosyası degiskeninde belirtilen isimle yedekler.
 * Günde bir defa yeni kur değerlerini sunucudan çeker.
 *
 * Geliştirici: Göktuğ ÖZTÜRK
 * E-Posta: goktug [nokta] ozturk [at] gmail [nokta] com
 * Web: http://www.goktugozturk.com.tr
 */
class DovizKuru
{
  var $cache_dosyasi = "doviz_kurlari";
  var $kurlar = array();
  var $aktif_kur = "USD";
  /**
   * Constructor
   *
   * @access protected
   * @param bool $CacheEnabled
   * @param int $ CacheTime
   * @return void
   */
  function DovizKuru( $CacheEnabled = true, $CacheTime = 60 )
  {
    $Data = array();
    if ( $CacheEnabled )
    {
      $CacheSuresi = time() - $CacheTime * 60;
      if ( file_exists( $this-&gt;cache_dosyasi . ".db" )
          AND is_readable( $this-&gt;cache_dosyasi . ".db" )
          AND filemtime( $this-&gt;cache_dosyasi . ".db" ) &gt; $CacheSuresi )
      {
        $FileContent = $this-&gt;rFile( $this-&gt;cache_dosyasi . ".db" );
        if ( trim( $FileContent ) != "" )
          $this-&gt;kurlar = unserialize( base64_decode( $FileContent ) );
      }
    } 

    if ( !count( $Data ) )
    {
      $xmlalanlari = array( "Isim" =&gt; "Isim",
        "ForexBuying" =&gt; "Alis",
        "ForexSelling" =&gt; "Satis",
        "BanknoteBuying" =&gt; "EfektifAlis",
        "BanknoteSelling" =&gt; "EfektifSatis",
        );

      $FileContent = $this-&gt;rFile( "http://www.tcmb.gov.tr/kurlar/today.xml" );

      preg_match_all( '@]*&gt;(.*)&lt; \/Currency&gt;@iU', $FileContent, $Matches, PREG_SET_ORDER );
      foreach( $Matches as $value )
      {
        if ( !in_array( $value[1], array( "USD", "EUR", "CAD", "DKK", "SEK", "CHF", "NOK", "JPY", "SAR", "KWD", "AUD", "GBP" ) ) )
          continue;

        preg_match_all( '@&lt; ([a-z]+)&gt;(.*)&lt; \/\\1&gt;@iU', $value[2], $SubMatches, PREG_SET_ORDER );
        foreach( $SubMatches as $value2 )
        {
          if ( !isset( $xmlalanlari[$value2[1]] ) ) continue;
          $this-&gt;kurlar[$value[1]][$xmlalanlari[$value2[1]]] = $value2[2];
        }
      } 

      if ( $CacheEnabled )
        $this-&gt;wFile( $this-&gt;cache_dosyasi . ".db", base64_encode( serialize( $this-&gt;kurlar ) ) );
    }
  } 

  /**
   * Aktif kuru belirler.
   *
   * Geçerli Kurlar:
   * USD, EUR, CAD, DKK, SEK, CHF, NOK, JPY, SAR, KWD, AUD, GBP
   *
   * @param string $Currency
   * @return string
   */
  function KurBelirle( $Currency )
  {
    $Currency = strtoupper( $Currency );
    if ( isset( $this-&gt;kurlar[$Currency] ) )
    {
      $this-&gt;aktif_kur = $Currency;
      return true;
    } 

    return false;
  } 

  /**
   * Aktif Kur için Alış değerini getirir.
   *
   * @param string $Currency
   * @return string
   */
  function AlisGetir( $Currency = null )
  {
    if ( is_null( $Currency ) )
      $Currency = $this-&gt;aktif_kur;
    else
      $Currency = strtoupper( $Currency );

    return $this-&gt;kurlar[$Currency]["Alis"];
  } 

  /**
   * Aktif Kur için Satış değerini getirir.
   *
   * @param string $Currency
   * @return string
   */
  function SatisGetir( $Currency = null )
  {
    if ( is_null( $Currency ) )
      $Currency = $this-&gt;aktif_kur;
    else
      $Currency = strtoupper( $Currency );

    return $this-&gt;kurlar[$Currency]["Satis"];
  } 

  /**
   * Belirtilen yoldaki dosya içeriğini getirir.
   *
   * @param string $FileName
   * @param string $Mode
   * @return string
   */
  function rFile( $FileName )
  {
    $Content = "";
    if ( !preg_match( '@^https?:@', $FileName )
        OR ini_get( 'allow_url_fopen' ) == '1' )
    {
      if ( function_exists( 'file_get_contents' ) )
      {
        $Content = file_get_contents( $FileName );
      }
      else
      {
        if ( !$Handle = fopen( $FileName, "r" ) )
          return "Dosya Açılamıyor ($FileName)";

        $Content = fread( $Handle, filesize( $FileName ) );
        fclose( $Handle );
      }
    }
    else if ( function_exists( 'curl_init' ) )
    {
      $ch = curl_init();
      curl_setopt( $ch, CURLOPT_URL, $FileName );
      curl_setopt( $ch, CURLOPT_HEADER, 0 );
      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
      $Content = curl_exec( $ch );
      curl_close( $ch );
    }
    else
      return "";

    return $Content;
  } 

  /**
   * Verilen içeriği dosyaya yazar.
   *
   * @param string $FileName
   * @param string $Content
   * @param int $Chmod
   * @param string $Mode
   * @return bool
   */
  function wFile( $FileName, $Content )
  {
    if ( function_exists( 'file_put_contents' ) )
    {
      if ( !file_put_contents( $FileName, $Content ) )
        return false;
    }
    else
    {
      if ( !$Handle = @fopen( $FileName, "w" ) )
        return false;

      if ( @fwrite( $Handle, $Content ) === false )
        return false;

      @fclose( $Handle );
    }
    @chmod( $FileName, 0644 );
    return true;
  }
} 

?&gt;</pre>
<p>test.php dosyasının içeriği</p>
<pre class="brush:php; html-script:true">
&lt;?php
include ( 'doviz.php' );
/**
 * DovizKuru Sınıfı
 *
 * Eğer önbellek dosyası kullanmak istemiyorsanız 1. paremetre olarak false verebilirsiniz.
 * Örnek: $TCMB = new DovizKuru( false );
 *
 * Varsayılan olarak önbellek süresi 60 dakikadır. Bunu değiştirmek için 2. paremetre olarak dakika cinsinden bir değer girebilirsiniz.
 * Örnekler:
 * $TCMB = new DovizKuru( true, 1440 ); // 1 günlük önbellek
 * $TCMB = new DovizKuru( true, 0 ); // Her çağrıldığında yenile
 */
$TCMB = new DovizKuru();
?&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="tr-TR"&gt;
&lt;head&gt;
 &lt;title&gt;Test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table style="border: 1px solid #999; border-collapse: collapse;" border="1" cellspacing="0" cellpadding="4"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;ALIŞ&lt;/td&gt;
&lt;td&gt;SATIŞ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USD&lt;/td&gt;
&lt;td&gt;&lt;?=$TCMB-&gt;AlisGetir( "USD" )?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?=$TCMB-&gt;SatisGetir( "USD" )?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?php
/** Kur Belirle fonksiyonu ile sayfa içinde kullanacağınız kuru tek seferde belirleyebilirsiniz.
*  Bu sayede daha sonra kullanacağınız AlisGetir() ve SatisGetir() fonksiyonlarında ayrıca kur belirtmeniz gerekmez. */
$TCMB-&gt;KurBelirle( "EUR" );

?&gt;&lt;tr&gt;
 &lt;td&gt;EURO&lt;/td&gt;
 &lt;td&gt;&lt;?=$TCMB-&gt;AlisGetir()?&gt;&lt;/td&gt;
 &lt;td&gt;&lt;?=$TCMB-&gt;AlisGetir()?&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.goktugozturk.com.tr/programlama/php/tcmb-doviz-kurlari-sinifi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World!</title>
		<link>http://www.goktugozturk.com.tr/genel/hello-world/</link>
		<comments>http://www.goktugozturk.com.tr/genel/hello-world/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 12:12:08 +0000</pubDate>
		<dc:creator>Göktuğ ÖZTÜRK</dc:creator>
				<category><![CDATA[Genel]]></category>

		<guid isPermaLink="false">http://www.goktugozturk.com.tr/?p=15</guid>
		<description><![CDATA[Hepinize merhaba,
Uzun zamandır hayalini kurduğum "kendime ait bir web sayfası" ve bununla beraber bu niyetle attığım her adımın, gerek iş yoğunluğu, gerekse başka sebeplerle yarım kalmasından sonra, bir blog kurarar bilgilerimi paylaşmanın çok daha kolay olacağına karar verdim. 
Okuduğunuz bu mesaj da bu konuda wordpress kurulumundan sonra attığım ikinci adımdır. 
İyi günler.
]]></description>
			<content:encoded><![CDATA[<p>Hepinize merhaba,</p>
<p>Uzun zamandır hayalini kurduğum "kendime ait bir web sayfası" ve bununla beraber bu niyetle attığım her adımın, gerek iş yoğunluğu, gerekse başka sebeplerle yarım kalmasından sonra, bir blog kurarar bilgilerimi paylaşmanın çok daha kolay olacağına karar verdim. </p>
<p>Okuduğunuz bu mesaj da bu konuda wordpress kurulumundan sonra attığım ikinci adımdır. </p>
<p>İyi günler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goktugozturk.com.tr/genel/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
