<?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>Sniper</title>
	<atom:link href="http://tuncay.kinali.net/feed" rel="self" type="application/rss+xml" />
	<link>http://tuncay.kinali.net</link>
	<description>Hafızamın bir kısmı</description>
	<lastBuildDate>Fri, 29 Jan 2010 07:46:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu Firefox İpuçları</title>
		<link>http://tuncay.kinali.net/ubuntu-firefox-ipuclari.html</link>
		<comments>http://tuncay.kinali.net/ubuntu-firefox-ipuclari.html#comments</comments>
		<pubDate>Fri, 29 Jan 2010 07:44:10 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[adres satırı]]></category>
		<category><![CDATA[backspace]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[history back]]></category>
		<category><![CDATA[select all]]></category>
		<category><![CDATA[tümünü seç]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=278</guid>
		<description><![CDATA[Bundan 2 hafta kadar önce Windows&#8217;a tamamen veda edip iş yerimde de sadece Ubuntu kullanmaya başladım. Windows ortamındaki alışkanlıklarımdan vazgeçemediklerimi mümkün olduğunca Ubuntu&#8217;ya taşımaya gayret ediyorum. Çok sık kullandığım Firefox tarayıcının Ubuntu versiyonunda 2 özelliğinin varsayılan olarak kapalı olduğunu gördüm ve bunları nasıl açacağımı araştırdım. 
Firefox&#8217;ta gezindiğimiz sayfalarda backspace tuşu ile bir önceki sayfaya geçme [...]]]></description>
			<content:encoded><![CDATA[<p>Bundan 2 hafta kadar önce Windows&#8217;a tamamen veda edip iş yerimde de sadece Ubuntu kullanmaya başladım. Windows ortamındaki alışkanlıklarımdan vazgeçemediklerimi mümkün olduğunca Ubuntu&#8217;ya taşımaya gayret ediyorum. Çok sık kullandığım Firefox tarayıcının Ubuntu versiyonunda 2 özelliğinin varsayılan olarak kapalı olduğunu gördüm ve bunları nasıl açacağımı araştırdım. <span id="more-278"></span></p>
<p>Firefox&#8217;ta gezindiğimiz sayfalarda backspace tuşu ile bir önceki sayfaya geçme işlemi çok sık kullandığım bir işlemdi. Ubuntu&#8217;da bu özellik varsayılan olarak kapalı.</p>
<ul>
<li>Kapalı olan bu özelliği açmak için tarayıcının adres satırına &#8220;<strong>about:config</strong>&#8221; yazın.</li>
<li>Uyarıyı da geçtikten sonra süzgeç kısmına &#8220;<strong>browser.backspace_action</strong>&#8221; yazın.</li>
<li>Özellik üzerine çift tıklayarak değerini &#8220;<strong>0</strong>&#8221; yapın ve kapatın.</li>
<li>Artık backspace tuşuyla geri gidebilirsiniz.</li>
</ul>
<p>Varsayılan olarak kapalı olan diğer bir özellik ise adres çubuğuna tıklandığında tüm satırın seçili hale gelmesi olayı. </p>
<ul>
<li>Bu özelliği açmak için ise yine adres çubuğuna &#8220;<strong>about:config</strong>&#8221; yazın.</li>
<li>Süzgeç kısmına &#8220;<strong>browser.urlbar.clickSelectsAll</strong>&#8221; yazın.</li>
<li>Özellik üzerine çift tıklayarak <em>false</em> olan değeri <strong>true</strong> yapın.</li>
<li>Test etmek için adres satırına bir kez tıklayın.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/ubuntu-firefox-ipuclari.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress için Serbest Alan Bileşeni</title>
		<link>http://tuncay.kinali.net/wordpress-icin-serbest-alan-bileseni.html</link>
		<comments>http://tuncay.kinali.net/wordpress-icin-serbest-alan-bileseni.html#comments</comments>
		<pubDate>Sat, 10 Oct 2009 15:53:28 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[bileşen]]></category>
		<category><![CDATA[serbest alan]]></category>
		<category><![CDATA[sidebar bileşeni]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp_widget]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=260</guid>
		<description><![CDATA[Blogumun bu temasına geçmeden önce bir çok farklı tema denedim. Her birinin belirli üstün özellikleri ve zayıflıkları vardı. Tema seçerken en çok dikkat ettiğim şey sidebar ve footerbar üzerinde, içini dilediğimce doldurabileceğim bir bileşenin olmasıydı. Ne yazık ki şimdiye kadar hiçbir temada böyle birşeyle karşılaşmadım. 
WP için daha önce tema veya bileşen de yazmadığımdan bu [...]]]></description>
			<content:encoded><![CDATA[<p>Blogumun bu temasına geçmeden önce bir çok farklı tema denedim. Her birinin belirli üstün özellikleri ve zayıflıkları vardı. Tema seçerken en çok dikkat ettiğim şey sidebar ve footerbar üzerinde, içini dilediğimce doldurabileceğim bir bileşenin olmasıydı. Ne yazık ki şimdiye kadar hiçbir temada böyle birşeyle karşılaşmadım. <span id="more-260"></span></p>
<p>WP için daha önce tema veya bileşen de yazmadığımdan bu özellikte bir bileşeni kendim yapmayı hiç düşünmedim. Ta ki WP 2.8&#8242;e güncellenene kadar. Wordpress&#8217;e, 2.8 versiyonuyla birlikte &#8220;WP_Widget&#8221; isimli bir sınıfın eklendiğini gördüm. Kısa bir araştırmadan sonra bu sınıfı kullanarak istediğim özellikteki bileşeni kendim yazmaya karar verdim, hemen kolları sıvadım ve &#8220;Serbest Alan&#8221; adını verdiğim bileşeni yazdım.</p>
<p>Serbest Alan, yukarıda da tarif ettiğim gibi; sidebar, footerbar vb. alanlara, içine istediğimiz kodu yazıp blogumuzda görüntüleyebileceğimiz alanlar oluşturmaya yarıyor. Kendi blogumdan örnek verecek olursam, sağdaki ve tepedeki Google reklamlarını ve sağ alttaki Frienfeed pencere öğesini Serbest Alan kullanarak ekledim. Serbest Alan&#8217;ı temalarınızdan bağımsız olarak her zaman kullanabilmeniz için aşağıdaki kodları &#8220;wp-includes/widgets.php&#8221; dosyasının en altına ekleyip kaydedin.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2602"><td class="code" id="p260code2"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #000000; font-weight: bold;">class</span> SerbestAlan <span style="color: #000000; font-weight: bold;">extends</span> WP_Widget <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">function</span> SerbestAlan<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$widget_ops</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'description'</span> <span style="color: #339933;">=&gt;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Bu alanlara dilediğinizi koyabilirsiniz.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$control_ops</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'width'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">225</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'height'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">300</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">WP_Widget</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'googlead'</span><span style="color: #339933;">,</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Serbest Alan'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$widget_ops</span><span style="color: #339933;">,</span> <span style="color: #000088;">$control_ops</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> widget<span style="color: #009900;">&#40;</span><span style="color: #000088;">$args</span><span style="color: #339933;">,</span> <span style="color: #000088;">$instance</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">extract</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$args</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$kod</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$instance</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$kod</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> update<span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_instance</span><span style="color: #339933;">,</span> <span style="color: #000088;">$old_instance</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$instance</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$old_instance</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$instance</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$new_instance</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$instance</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> form<span style="color: #009900;">&#40;</span><span style="color: #000088;">$instance</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$instance</span> <span style="color: #339933;">=</span> wp_parse_args<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$instance</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'kod'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$kod</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$instance</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;textarea name=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_field_name</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; id=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_field_id</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'kod'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; style=&quot;width:225px; height:200px;&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$kod</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/textarea&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> GAInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	register_widget<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SerbestAlan'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'widgets_init'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'GAInit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Şimdi yönetim panelinizden Görünüm > Bileşenler menüsüne tıklayın. Bir aksilik olmadıysa &#8220;Serbest Alan&#8221;ın mevcut bileşenler arasına yerleştiğini göreceksiniz. Sidebar&#8217;a sürüklediğinizde, içine istediğiniz kodu yazabileceğiniz bir metin alanı sizi bekliyor olacak. &#8220;Kaydet&#8221; e tıkladığınızda eklediğiniz içerik blogunuzda görüntülenmeye başlayacaktır.</p>
<p><a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/s1.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/s1-300x272.jpg" alt="s1" title="s1" width="300" height="272" class="aligncenter size-medium wp-image-263" /></a></p>
<p><a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/s2.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/s2-256x300.jpg" alt="s2" title="s2" width="256" height="300" class="aligncenter size-medium wp-image-264" /></a></p>
<div class='wp_likes' id='wp_likes_post-260'><a class='like' href="javascript:wp_likes.like(260);" title='' ><img src="http://tuncay.kinali.net/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Beğen</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(260);">Beğenini Kaldır</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/wordpress-icin-serbest-alan-bileseni.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eclipse&#8217;e Word Wrap Özelliği Ekleme</title>
		<link>http://tuncay.kinali.net/eclipsee-word-wrap-ozelligi-ekleme.html</link>
		<comments>http://tuncay.kinali.net/eclipsee-word-wrap-ozelligi-ekleme.html#comments</comments>
		<pubDate>Sat, 03 Oct 2009 07:16:38 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[pdt]]></category>
		<category><![CDATA[word wrap]]></category>
		<category><![CDATA[wordwrap]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=249</guid>
		<description><![CDATA[Standart Eclipse programında word wrap özelliği maalesef yok. Bu yazımda Eclipse&#8217;e word wrap özelliğini kazandırmak için Ahti Kitsik&#8216;in hazırladığı Virtual Word Wrap isimli eklentinin nasıl kurulduğunu tarif edeceğim.
Eclipse&#8217;i açıp Help > Install New Software menüsüne tıklayın.

Açılan pencerede Add&#8217;i tıklayıp adres kısmına &#8220;http://ahtik.com/eclipse-update&#8221;, Name kısmına da istediğinizi yazıp OK&#8217;e tıklayın.

Aşağıda bu siteden yükleyebileceğiniz eklentiler listelenecektir. Virtual [...]]]></description>
			<content:encoded><![CDATA[<p>Standart Eclipse programında <strong>word wrap</strong> özelliği maalesef yok. Bu yazımda Eclipse&#8217;e word wrap özelliğini kazandırmak için <a href="http://ahtik.com/blog/" target="_blank">Ahti Kitsik</a>&#8216;in hazırladığı <strong>Virtual Word Wrap</strong> isimli eklentinin nasıl kurulduğunu tarif edeceğim.<span id="more-249"></span></p>
<p>Eclipse&#8217;i açıp Help > Install New Software menüsüne tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/1.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/1.jpg" alt="1" title="1" width="430" height="300" class="aligncenter size-full wp-image-253" /></a><br />
Açılan pencerede Add&#8217;i tıklayıp adres kısmına &#8220;http://ahtik.com/eclipse-update&#8221;, Name kısmına da istediğinizi yazıp OK&#8217;e tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/3.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/3.jpg" alt="3" title="3" width="430" height="163" class="aligncenter size-full wp-image-251" /></a><br />
Aşağıda bu siteden yükleyebileceğiniz eklentiler listelenecektir. Virtual Word Wrap&#8217;e tıklayıp Next&#8217;e tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/2.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/2.jpg" alt="2" title="2" width="350" height="300" class="aligncenter size-full wp-image-250" /></a></p>
<p>Lisans anlaşmasını kabul ettikten sonra Eclipse&#8217;i yeniden başlatmak isteyip istemediğinizi soracaktır. Eclipse&#8217;i sonraki açışınızda bu eklentiyi kullanabilirsiniz. Kullanımı basit, kullanmak istediğiniz sayfada sağ tıklayıp menüden Virtual Word Wrap&#8217;i seçin.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/10/4.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/10/4.jpg" alt="4" title="4" width="430" height="300" class="aligncenter size-full wp-image-252" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/eclipsee-word-wrap-ozelligi-ekleme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL&#8217;de RegExp ile Replace Kullanımı</title>
		<link>http://tuncay.kinali.net/mysqlde-regexp-ile-replace-kullanimi.html</link>
		<comments>http://tuncay.kinali.net/mysqlde-regexp-ile-replace-kullanimi.html#comments</comments>
		<pubDate>Thu, 24 Sep 2009 17:34:57 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[Replace]]></category>
		<category><![CDATA[Stored Function]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=215</guid>
		<description><![CDATA[Bir projemde MySQL&#8216;deki bir alanın değerinde RegExp kullanarak Replace işlemi yapma ihtiyacı duydum. Araştırdığımda MySQL&#8217;in Replace fonksiyonunun sadece string türünde parametre aldığını, dolayısıyla MySQL&#8217;in standart fonksiyonlarıyla bunu yapamayacağımı gördüm. Uzun zamandır Stored Procedure ve Stored Function konularını merak ettiğim halde hiç kullanma fırsatım olmamıştı. Bu durumu fırsat bilerek Regular Expression kullanarak değiştirme işlemi yapabileceğim bir [...]]]></description>
			<content:encoded><![CDATA[<p>Bir projemde <strong>MySQL</strong>&#8216;deki bir alanın değerinde <strong>RegExp</strong> kullanarak <strong>Replace</strong> işlemi yapma ihtiyacı duydum. Araştırdığımda MySQL&#8217;in Replace fonksiyonunun sadece string türünde parametre aldığını, dolayısıyla MySQL&#8217;in standart fonksiyonlarıyla bunu yapamayacağımı gördüm. Uzun zamandır <strong>Stored Procedure</strong> ve <strong>Stored Function</strong> konularını merak ettiğim halde hiç kullanma fırsatım olmamıştı. Bu durumu fırsat bilerek <strong>Regular Expression</strong> kullanarak değiştirme işlemi yapabileceğim bir Stored Function yazdım.<span id="more-215"></span></p>
<p>Hazırladığım fonksiyonun adı <strong>T_REGEXP_REPLACE</strong>, 3 parametre alıyor ve her üçü de VARCHAR veri tipinde. İlk parametrede değişikliğin uygulanacağı string, ikincisinde Regular Expression Deseni, üçüncüsünde ise değiştirilecek kısmın yerine konulacak karakter tanımlanır. Akılda kalıcı olsun diye kısaca şöyle de diyebiliriz: T_REGEXP_REPLACE(Neyi, Neye Göre, Neyle)</p>
<p>Aşağıdaki kodları <strong>MySQL Query Browser</strong> ya da muadili bir programla, kullanacağınız veritabanı üzerinde bir kez çalıştırıp fonksiyonu veritabanınıza ekleyin:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p215code5'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2155"><td class="code" id="p215code5"><pre class="mysql" style="font-family:monospace;">DELIMITER $$
&nbsp;
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> <span style="color: #008000;">`T<span style="color: #008080; font-weight: bold;">_</span>REGEXP<span style="color: #008080; font-weight: bold;">_</span>REPLACE`</span>$$
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">DEFINER</span><span style="color: #CC0099;">=</span><span style="color: #008000;">`root`</span>@<span style="color: #008000;">`localhost`</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> <span style="color: #008000;">`T<span style="color: #008080; font-weight: bold;">_</span>REGEXP<span style="color: #008080; font-weight: bold;">_</span>REPLACE`</span><span style="color: #FF00FF;">&#40;</span>t_string <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> t_pattern <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> t_replacement <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">RETURNS</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #FF9900; font-weight: bold;">CHARSET</span> utf8
<span style="color: #990099; font-weight: bold;">BEGIN</span>
	<span style="color: #808000; font-style: italic;">/* Değişkenleri tanımlayalım */</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> t_length<span style="color: #000033;">,</span> t_cursor<span style="color: #000033;">,</span> t_regex <span style="color: #999900; font-weight: bold;">TINYINT</span><span style="color: #000033;">;</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> t_result <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #808000; font-style: italic;">/* Başlangıç değerlerini atayalım */</span>
	<span style="color: #990099; font-weight: bold;">SET</span> t_length <span style="color: #CC0099;">=</span> <span style="color: #000099;">CHAR_LENGTH</span><span style="color: #FF00FF;">&#40;</span>t_string<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span> 
	<span style="color: #990099; font-weight: bold;">SET</span> t_cursor <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
	<span style="color: #990099; font-weight: bold;">SET</span> t_regex <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
	<span style="color: #990099; font-weight: bold;">SET</span> t_result <span style="color: #CC0099;">=</span> <span style="color: #008000;">''</span><span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #808000; font-style: italic;">/* Tüm karakterleri tek tek pattern'imize tabi tutalım */</span>	
	WHILE t_length<span style="color: #CC0099;">&gt;-</span><span style="color: #008080;">1</span> <span style="color: #990099; font-weight: bold;">DO</span>		
		<span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>t_string<span style="color: #000033;">,</span> t_cursor<span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">REGEXP</span> <span style="color: #990099; font-weight: bold;">BINARY</span> t_pattern <span style="color: #990099; font-weight: bold;">INTO</span> t_regex<span style="color: #000033;">;</span>
&nbsp;
		<span style="color: #009900;">IF</span> t_regex <span style="color: #009900;">THEN</span>
			<span style="color: #808000; font-style: italic;">/* Pattern'e uyan karakterleri t_replacement ile değiştirelim */</span>
			<span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>t_result<span style="color: #000033;">,</span> t_replacement<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">INTO</span> t_result<span style="color: #000033;">;</span>
		<span style="color: #009900;">ELSE</span>
			<span style="color: #808000; font-style: italic;">/* Uymayanları olduğu gibi bırakalım */</span>
			<span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>t_result<span style="color: #000033;">,</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>t_string<span style="color: #000033;">,</span> t_cursor<span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">INTO</span> t_result<span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">SET</span> t_length <span style="color: #CC0099;">=</span> t_length<span style="color: #CC0099;">-</span><span style="color: #008080;">1</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">SET</span> t_cursor <span style="color: #CC0099;">=</span> t_cursor<span style="color: #CC0099;">+</span><span style="color: #008080;">1</span><span style="color: #000033;">;</span>		
	<span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
	RETURN<span style="color: #FF00FF;">&#40;</span>t_result<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
<span style="color: #009900;">END</span>$$
&nbsp;
DELIMITER <span style="color: #000033;">;</span></pre></td></tr></table></div>

<p>Herhangi bir uyarı ya da hata mesajı almadıysanız ilk denemenizi yapabilirsiniz. Aşağıda &#8220;<strong>mysql</strong>&#8221; isimli veritabanının &#8220;<strong>help_category</strong>&#8221; tablosu üzerinde çalıştırılan sorgu ve çıktısını görebilirsiniz. Sorgu; <strong>help_category</strong> tablosunun <strong>name</strong> alanındaki değerlerde geçen tüm büyük harfleri <strong>&#8220;-&#8221;</strong> karakteri ile değiştirir.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p215code6'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2156"><td class="code" id="p215code6"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> name <span style="color: #990099; font-weight: bold;">AS</span> OriginalName<span style="color: #000033;">,</span> T_REGEXP_REPLACE<span style="color: #FF00FF;">&#40;</span>name<span style="color: #000033;">,</span> <span style="color: #008000;">'[A-Z]+'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'-'</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">AS</span> ReplacedName <span style="color: #990099; font-weight: bold;">FROM</span> help_category h <span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span></pre></td></tr></table></div>

<p><a href="http://tuncay.kinali.net/wp-content/uploads/2009/09/mysql_ss.png"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/09/mysql_ss-300x222.png" alt="t_regexp_replace screenshot" title="t_regexp_replace screenshot" width="300" height="222" class="aligncenter size-medium wp-image-218" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/mysqlde-regexp-ile-replace-kullanimi.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Firefox&#8217;unuzu hızlandırın</title>
		<link>http://tuncay.kinali.net/firefoxunuzu-hizlandirin.html</link>
		<comments>http://tuncay.kinali.net/firefoxunuzu-hizlandirin.html#comments</comments>
		<pubDate>Mon, 07 Sep 2009 14:39:21 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hızlandırma]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[veritabanı]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=203</guid>
		<description><![CDATA[Uzun süre kullanılan Firefox zamanla ağırlaşmaya ve kasılmaya başlar. Bunun nedenlerinden biri olarak kullandığı veritabanlarının gün geçtikçe şişmesi olarak gösterilir. Bu yazıda Firefox&#8217;un en sık kullandığı dolayısıyla boyutu en büyük olan places isimli veritabanına sıkıştırma uygulamayı tarif edeceğim. İnternette, bu işi farklı işletim sistemlerinde farklı yöntemlerle yapma tarifleri de anlatılıyor ama burada yazacağım yöntemi uygulamak [...]]]></description>
			<content:encoded><![CDATA[<p>Uzun süre kullanılan Firefox zamanla ağırlaşmaya ve kasılmaya başlar. Bunun nedenlerinden biri olarak kullandığı veritabanlarının gün geçtikçe şişmesi olarak gösterilir. Bu yazıda Firefox&#8217;un en sık kullandığı dolayısıyla boyutu en büyük olan <strong>places</strong> isimli veritabanına sıkıştırma uygulamayı tarif edeceğim. İnternette, bu işi farklı işletim sistemlerinde farklı yöntemlerle yapma tarifleri de anlatılıyor ama burada yazacağım yöntemi uygulamak için ne sqlite indirmenize ne de işletim sistemi seçmenize gerek kalmayacak.</p>
<ul>
<li><strong>Firefox</strong>&#8216;un <strong>Araçlar </strong>menüsünden <strong>Hata Konsolu</strong>&#8216;nu açın.</li>
<li>&#8220;<strong>Kod</strong>&#8221; kısmına aşağıdaki kodu tek satır halinde kopyalayın ve enterlayın.</li>
<li>Biraz beklemeden sonra işlem tamamdır.</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p203code8'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2038"><td class="code" id="p203code8"><pre class="javascript" style="font-family:monospace;">Components.<span style="color: #660066;">classes</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;@mozilla.org/browser/nav-history-service;1&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">getService</span><span style="color: #009900;">&#40;</span>Components.<span style="color: #660066;">interfaces</span>.<span style="color: #660066;">nsPIPlacesDatabase</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">DBConnection</span>.<span style="color: #660066;">executeSimpleSQL</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;VACUUM&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>İşlem bittiğinde Firefox biraz daha rahatlamış olacak&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/firefoxunuzu-hizlandirin.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP ile otomatik thumbnail oluşturun</title>
		<link>http://tuncay.kinali.net/php-ile-otomatik-thumbnail-olusturun.html</link>
		<comments>http://tuncay.kinali.net/php-ile-otomatik-thumbnail-olusturun.html#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:33:10 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[otomatik thumbnail]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=183</guid>
		<description><![CDATA[Bugüne kadar hazırladığım web siteleri çoğunlukla katalog tarzı ürün tanıtım siteleriydi. Bu sitelerde bir ürünün farklı ebatlarda resimlerini sitenin çeşitli yerlerinde kullanmam gerekiyordu. Zamanında buna çare olarak bir script hazırlamıştım. Script, kendisine parametre olarak gönderilen resmin istenilen boyutlarda bir küçük kopyasını çalışma anında oluşturuyor ve tarayıcıya gönderiyordu. Böylelikle hem disk alanından kâr ediyor, hem de [...]]]></description>
			<content:encoded><![CDATA[<p>Bugüne kadar hazırladığım web siteleri çoğunlukla katalog tarzı ürün tanıtım siteleriydi. Bu sitelerde bir ürünün farklı ebatlarda resimlerini sitenin çeşitli yerlerinde kullanmam gerekiyordu. Zamanında buna çare olarak bir script hazırlamıştım. Script, kendisine parametre olarak gönderilen resmin istenilen boyutlarda bir küçük kopyasını çalışma anında oluşturuyor ve tarayıcıya gönderiyordu. Böylelikle hem disk alanından kâr ediyor, hem de her boyut için manuel olarak tüm resimlerin thumbnailini oluşturma zahmetinden kurtuluyordum. <span id="more-183"></span></p>
<p>Bu scripti, ASP yazdığım zamanlarda ASPJpeg bileşeni kullanarak geliştirmiştim. PHP&#8217;ye geçince aynı işi yapan PHP kodlarını da hazırladım ama bu kodlar ASP&#8217;deki kadar hızlı çalışmıyordu. Resimlerin görüntülenmesinde gözle görülür bir yavaşlama söz konusuydu ama gerek zamansızlık, gerekse PHP alanında tecrübesiz olmamdan dolayı bu konunun üstünde fazla durmamıştım. Son birkaç gündür bu scriptle ilgilenme fırsatım oldu ve nasıl daha az kaynak tüketerek scripti daha verimli hale getirebilirim diye düşündüm. Madem her resmin thumbnail&#8217;i oluşturulup tarayıcıya gönderiliyor, neden bunları bir dosyaya kaydetmeyeyim? Hem bir sonraki çağırılışlarında direkt oluşturduğum dosyayı çağırırım ve işlemciyi yormam, hem de her resmin istediğim ebatlardaki thumbnaillerini elimi sürmeden oluşturmuş olurum.</p>
<p>Scriptin adı thumb.php, dışarıdan 3 parametre alıyor:</p>
<ul>
<li><strong>p:</strong> Üzerinde işlem yapılacak olan resmin dosya sistemi üzerindeki tam yolu. Scriptin esprisini kaybetmemesi açısından yeniden boyutlandırılacak resmin bulunduğu klasörün yazma izinleri ayarlanmış olmalıdır.</li>
<li><strong>w:</strong> Resmin dönüştürüleceği maximum genişlik. (Kötü amaçlı kullanımlardan korunmak amacıyla 1024px ile sınırlandırılmıştır.)</li>
<li><strong>h:</strong> Resmin dönüştürüleceği maximum yükseklik. (Kötü amaçlı kullanımlardan korunmak amacıyla 768px ile sınırlandırılmıştır.)</li>
</ul>
<p><strong>w</strong> ve <strong>h</strong> parametreleri opsiyonel olup istenirse her ikisinin de kullanılacağı gibi sadece biri de kullanılabilir. Hiçbirini kullanmamak resmi doğrudan çağırmakla eşdeğer olacağından bir anlam ifade etmez. Scriptin çalışma mantığı özetle şöyle:</p>
<ul>
<li>Resmin genişlik ve yükseklik parametreleri alınır, yukarıda bahsedilen sınırlandırma uygulanır.</li>
<li>p parametresinde belirtilen resim dosyasının varlığı doğrulanır.</li>
<li>Resim için bir thumbnail dosya adı oluşturulur. Bu dosya adı; orjinal resmin adı[_<strong>w</strong>[genişlik değeri_<strong>h</strong>yükseklik değeri]].uzantı formatındadır. (Örneğin: &#8220;thumb.php?p=sniper.jpg&#038;w=100&#038;h=75&#8243; olarak çağırılan dosyanın thumbnail adı &#8220;sniper_w100_h75.jpg&#8221; olacaktır.)</li>
<li>Ortaya çıkan thumbnail dosya adı kullanılarak daha önce bu isimde bir dosya oluşturulmuşsa script o dosyaya yönlenir ve çalışmayı durdurur.</li>
<li>Resim dosyası belirtilen özelliklerle ilk defa çağırılıyorsa istenilen genişlik ve yükseklik değerleri işlenip orantılı bir şekilde küçük resim oluşturulur.</li>
<li>Resmin bulunduğu klasörün yazma izinleri ayarlanmışsa oluşturulan küçük resim klasöre kaydedilir, script kaydedilen dosyaya yönlendirilir ve çalışmayı durdurur.</li>
<li>Eğer klasörün yazma izni yoksa oluşturulan thumbnail direkt olarak tarayıcıya gönderilir ve dosyanın sonraki çağırılışlarında tüm bu işlemler tekrar eder.</li>
</ul>
<p>Son olarak birkaç örnek kullanım ve bu kullanımlar sonucunda oluşacak dosya bilgilerini verdikten sonra kodları alabilirsiniz. Örnek kodlar 1280&#215;960 px boyutlarında bir resim üzerinde çalıştırılmıştır.</p>
<div style="overflow:auto; margin-bottom:8px;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p183code13'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p18313"><td class="code" id="p183code13"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;thumb.php?p=urunler/wall1.jpg&amp;h=200&quot; /&gt;</pre></td></tr></table></div>

<p>Dosya Adı: wall1_h200.jpg<br />
Genişlik: 267px<br />
Yükseklik: 200px<br />
<a href="test/thumb/thumbtest.php?1" target="_blank">Kodun çalışan halini görmek için tıklayın</a>
</div>
<hr />
<div style="overflow:auto; margin-bottom:8px;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p183code14'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p18314"><td class="code" id="p183code14"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;thumb.php?p=urunler/wall1.jpg&amp;w=200&quot; /&gt;</pre></td></tr></table></div>

<p>Dosya Adı: wall1_w200.jpg<br />
Genişlik: 200px<br />
Yükseklik: 150px<br />
<a href="test/thumb/thumbtest.php?2" target="_blank">Kodun çalışan halini görmek için tıklayın</a>
</div>
<hr />
<div style="overflow:auto; margin-bottom:8px;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p183code15'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p18315"><td class="code" id="p183code15"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;thumb.php?p=urunler/wall1.jpg&amp;w=200&amp;h=200&quot; /&gt;</pre></td></tr></table></div>

<p>Dosya Adı: wall1_w200_h200.jpg<br />
Genişlik: 200px<br />
Yükseklik: 200px<br />
<a href="test/thumb/thumbtest.php?3" target="_blank">Kodun çalışan halini görmek için tıklayın</a>
</div>
<hr />
thumb.php</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p183code16'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p18316"><td class="code" id="p183code16"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #009933; font-style: italic;">/**
 * 	Dosya			= thumb.php
 *	Yazan			= Tuncay KINALI (a.k.a. Sniper)
 *	Görevi			= Parametre olarak verilen resmi istenilen boyutlarda küçültme, büyütme ve
 *			  		  orantılı olarak resmin içinden bir bölümü gösterme. Oluşturulan son resim
 *					  dosyasını yeniden isimlendirerek kaydetme. Sonraki çağırılışında bu isimde
 *					  dosya bulunduğu takdirde direkt olarak o dosyayı gösterme.
 *	Parametreler	= &quot;p&quot;: Üzerinde oynanacak resmin yolu
 *					  &quot;w&quot;: Resmin maximum genişliği (opsiyonel)
 *					  &quot;h&quot;: Resmin maximum yüksekliği (opsiyonel)
 *	Tarih			= 11.08.2007
 * 	Son Güncelleme 	= 27.08.2009 - 21:11
 */</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Gösterilecek resmin yolu.</span>
<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'p'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Resmin istenilen genişliği.</span>
<span style="color: #666666; font-style: italic;">// Olası kötü amaçlı kullanımlara karşı maximum genişliği 1024px olarak ayarlıyoruz.</span>
<span style="color: #000088;">$w</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1024</span> ? <span style="color: #cc66cc;">1024</span> <span style="color: #339933;">:</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Resmin istenilen yüksekliği</span>
<span style="color: #666666; font-style: italic;">// Olası kötü amaçlı kullanımlara karşı maximum yüksekliği 768px olarak ayarlıyoruz</span>
<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">768</span> ? <span style="color: #cc66cc;">768</span> <span style="color: #339933;">:</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Belirtilen resim dosya sisteminde varsa...</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Dosya adını ve uzantısını ayrı ayrı al.</span>
	<span style="color: #000088;">$dosyaAdi</span> 	<span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$uzanti</span> 	<span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Thumbnail dosya adını öğren</span>
	<span style="color: #009933; font-style: italic;">/**
	 * Thumbnail dosya adı, scriptin sonraki çalışmasında kontrol edeceği
	 * içinde istenilen genişliğin ve yüksekliğin belirtildiği isimdir.
	 * Örneğin thumb.php?p=resim.jpg&amp;w=100&amp;h=75 şeklinde çalıştırılan script
	 * için thumbnail dosya adı &quot;resim_100_75.jpg&quot; olarak belirlenecektir.
	 */</span>
	<span style="color: #000088;">$thumbFileName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dosyaAdi</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$thumbFileName</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span> ? <span style="color: #0000ff;">'_w'</span><span style="color: #339933;">.</span><span style="color: #000088;">$w</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$thumbFileName</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span> ? <span style="color: #0000ff;">'_h'</span><span style="color: #339933;">.</span><span style="color: #000088;">$h</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$thumbFileName</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$uzanti</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// İstenilen ölçülerde thumbnail daha önce talep edilmiş ve dosya sistemine kaydedilmişse...</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// ... thumbnail dosyasına yönlen ve çalışmayı durdur.</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: <span style="color: #006699; font-weight: bold;">{$thumbFileName}</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// ... ilk defa talep edilen thumbnail dosyası için çalışmaya başla</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Resmin bilgilerini al</span>
		<span style="color: #000088;">$resim</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Max. Genişlik manuel olarak belirtilmiş ve yükseklik belirtilmemişse...</span>
			<span style="color: #666666; font-style: italic;">// ... genişliği istenilen ölçüye getir ...</span>
			<span style="color: #000088;">$genislik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// ... yüksekliği genişliğe orantılı bir şekilde hesapla.</span>
			<span style="color: #000088;">$yukseklik</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$genislik</span><span style="color: #339933;">*</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$w</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Max. Yükseklik manuel olarak belirtilmişse ve genişlik belirtilmemişse</span>
			<span style="color: #666666; font-style: italic;">// ... yüksekliği istenilen ölçüye getir ...</span>
			<span style="color: #000088;">$yukseklik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// ... genişliği yüksekliğe orantılı bir şekilde hesapla.</span>
			<span style="color: #000088;">$genislik</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$yukseklik</span><span style="color: #339933;">*</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Her iki özellikte manuel olarak belirtilmişse ...</span>
			<span style="color: #666666; font-style: italic;">// ... özellikleri istenilen ölçüye getir.</span>
			<span style="color: #000088;">$yukseklik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$genislik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// Her iki ölçü de girilmemişse ana resme git ve çalışmayı durdur.</span>
			<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: '</span><span style="color: #339933;">.</span> <span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Resmin türüne göre ana resmi belleğe kopyala</span>
		<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// GIF</span>
				<span style="color: #000088;">$kopya_resim</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$resim_mime_type</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'image/gif'</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// JPG</span>
				<span style="color: #000088;">$kopya_resim</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromjpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$resim_mime_type</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'image/jpeg'</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// PNG</span>
				<span style="color: #000088;">$kopya_resim</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefrompng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$p</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$resim_mime_type</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'image/png'</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Belirlenen ölçülerde boş bir resim oluştur</span>
		<span style="color: #000088;">$thumb</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$genislik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yukseklik</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// Belleğe kopyalanan ana resmi istenilen ölçülere göre küçülterek oluşturulan resmi</span>
		<span style="color: #666666; font-style: italic;">// az önce oluşturduğumuz boş resmin içine yazdır.</span>
		<span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$thumb</span><span style="color: #339933;">,</span> <span style="color: #000088;">$kopya_resim</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$genislik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yukseklik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #009933; font-style: italic;">/**
			 * Eğer maximum yükseklik değeri manuel olarak girilmişse ve bu değer
			 * scriptin oluşturduğu değerden farklıysa scriptin otomatik değeri yoksayılıp
			 * elle girilen değer dikkate alınarak thumbnail yeniden boyutlandırılır
			 */</span>
&nbsp;
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$yukseklik</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$yukseklik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$thumb2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$genislik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yukseklik</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #990000;">imagecopy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$thumb2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$thumb</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$yukseklik</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$genislik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yukseklik</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sonuc</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$thumb2</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$sonuc</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$thumb</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #009933; font-style: italic;">/** İstenilen boyuttaki thumbnail artık hazır
		 * Resmin türüne göre oluşturulan thumbnaili dosya sistemine yazdırmayı deneyeceğiz.
		 * Resmin bulunduğu klasörün yazma izinleri verilmişse thumbnail dosyası yukarıda
		 * ayarlanan isimle klasöre kaydedilir ve script kaydedilen bu dosyaya yönlendikten sonra
		 * çalışmayı durdurur. Yazma izinlerinde sorun varsa -ki bu scriptin esprisini yok eder-
		 * oluşturulan thumbnail'i direkt olarak browser'a yollar ve her seferinde yukarıdaki işlemleri yapar
		 */</span>
&nbsp;
		<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$resim</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// GIF</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">imagegif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #339933;">,</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: <span style="color: #006699; font-weight: bold;">{$resim_mime_type}</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">imagegif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// JPG</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #339933;">,</span><span style="color: #000088;">$thumbFileName</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">80</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: <span style="color: #006699; font-weight: bold;">{$resim_mime_type}</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">80</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span> <span style="color: #666666; font-style: italic;">// PNG</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #339933;">,</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$thumbFileName</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: <span style="color: #006699; font-weight: bold;">{$resim_mime_type}</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Tüm işlemler bittikten sonra bellek boşaltılıp bir nebze olsun sunucu rahatlatılır</span>
		<span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sonuc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/php-ile-otomatik-thumbnail-olusturun.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ubuntu&#8217;da FileZilla&#8217;yı Güncelleme</title>
		<link>http://tuncay.kinali.net/ubuntuda-filezillayi-guncelleme.html</link>
		<comments>http://tuncay.kinali.net/ubuntuda-filezillayi-guncelleme.html#comments</comments>
		<pubDate>Mon, 17 Aug 2009 19:26:03 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[filezilla]]></category>
		<category><![CDATA[güncelleme]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=179</guid>
		<description><![CDATA[Sürekli yeni güncelleme çıkaran FileZilla&#8217;yı maalesef Ubuntu otomatik olarak upgrade etmiyor. Mecburen cp komutunu kullanmam gerek ama her seferinde nasıl yaptığımı unutuyor ve hep arayışlara giriyorum. Bu sefer buraya kaydedeyim de unutmayayım. Aşağıdaki komut güncelleme için yeterli. (İnşallah buraya kaydettiğimi de unutmam)

?View Code BASHtar -jxvf FileZilla_3.2.7.1_i586-linux-gnu.tar.bz2
sudo cp -r -u ~/Masaüstü/FileZilla3/* /usr

]]></description>
			<content:encoded><![CDATA[<p><a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/logo.png"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/logo.png" alt="FileZilla" title="FileZilla" width="69" height="70" class="alignleft size-full wp-image-180" /></a>Sürekli yeni güncelleme çıkaran FileZilla&#8217;yı maalesef Ubuntu otomatik olarak upgrade etmiyor. Mecburen <strong>cp</strong> komutunu kullanmam gerek ama her seferinde nasıl yaptığımı unutuyor ve hep arayışlara giriyorum. Bu sefer buraya kaydedeyim de unutmayayım. Aşağıdaki komut güncelleme için yeterli. (İnşallah buraya kaydettiğimi de unutmam)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p179code18'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p17918"><td class="code" id="p179code18"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-jxvf</span> FileZilla_3.2.7.1_i586-linux-gnu.tar.bz2
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-r</span> <span style="color: #660033;">-u</span> ~<span style="color: #000000; font-weight: bold;">/</span>Masaüstü<span style="color: #000000; font-weight: bold;">/</span>FileZilla3<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #000000; font-weight: bold;">/</span>usr</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/ubuntuda-filezillayi-guncelleme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kendi Bilgisayarınızda SSL İle Çalışın: XP/Vista &#8211; Apache</title>
		<link>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-xpvista-apache.html</link>
		<comments>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-xpvista-apache.html#comments</comments>
		<pubDate>Fri, 14 Aug 2009 17:03:06 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=162</guid>
		<description><![CDATA[Windows XP ya da Vista üzerinde Apache web sunucusu ile SSL kullanabilmek için ya Apache sunucusunun OpenSSL destekli olan sürümünü yüklemiş olmak ya da OpenSSL&#8217;in kendisini yüklemiş olmak gereklidir. 
OpenSSL destekli Apache web sunucusunu indirmek için buraya, OpenSSL&#8217;i yüklemek için ise buraya tıklayın. Eğer OpenSSL&#8217;i indirecekseniz bilgisayarınızda Visual C++ 2008 Redistributables&#8216;ın kurulu olması gereklidir. Onu [...]]]></description>
			<content:encoded><![CDATA[<p>Windows XP ya da Vista üzerinde Apache web sunucusu ile SSL kullanabilmek için ya Apache sunucusunun OpenSSL destekli olan sürümünü yüklemiş olmak ya da OpenSSL&#8217;in kendisini yüklemiş olmak gereklidir. <span id="more-162"></span></p>
<p>OpenSSL destekli Apache web sunucusunu indirmek için <a href="http://apache.opensourceresources.org/httpd/binaries/win32/apache_2.2.13-win32-x86-openssl-0.9.8k.msi">buraya</a>, OpenSSL&#8217;i yüklemek için ise <a href="http://www.slproweb.com/download/Win32OpenSSL-0_9_8k.exe">buraya</a> tıklayın. Eğer OpenSSL&#8217;i indirecekseniz bilgisayarınızda <strong>Visual C++ 2008 Redistributables</strong>&#8216;ın kurulu olması gereklidir. Onu da indirmek için <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF">buraya</a> tıklayabilirsiniz.</p>
<p>Sisteminizde önceden Apache yüklüyse ama OpenSSL destekli mi değil mi bilmiyorsanız Bunun yerine Apache&#8217;nin OpenSSL destekli olan versiyonunu indirip kurmanızı tavsiye ederim.<br />
<!--pagetitle:Giriş--></p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-xpvista-apache.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kendi bilgisayarınızda SSL ile çalışın: Vista-IIS7</title>
		<link>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-vista-iis7.html</link>
		<comments>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-vista-iis7.html#comments</comments>
		<pubDate>Tue, 11 Aug 2009 19:07:40 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[iis7]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[self-signed certificate]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=143</guid>
		<description><![CDATA[Bazı durumlarda kendi bilgisayarımızda SSL bağlantı kullanma ihtiyacı duyabiliriz. Bunun için bir SSL sertifikamız olmalı fakat şahsi bilgisayarda kullanmak istediğimiz sertifika için gereksiz yere para ödemek istemiyoruz. Peki ne yapmalıyız? Bu gibi durumlarda Self-Signed Certificate adı verilen; kendi oluşturduğumuz ve kendi imzamızı taşıyan sertifika kullanmalıyız. Bu yazımda Vista üzerinde çalışan IIS7 ile self-signed certificate oluşturmayı [...]]]></description>
			<content:encoded><![CDATA[<p>Bazı durumlarda kendi bilgisayarımızda SSL bağlantı kullanma ihtiyacı duyabiliriz. Bunun için bir SSL sertifikamız olmalı fakat şahsi bilgisayarda kullanmak istediğimiz sertifika için gereksiz yere para ödemek istemiyoruz. Peki ne yapmalıyız? Bu gibi durumlarda Self-Signed Certificate adı verilen; kendi oluşturduğumuz ve kendi imzamızı taşıyan sertifika kullanmalıyız. Bu yazımda Vista üzerinde çalışan IIS7 ile self-signed certificate oluşturmayı ve bunu localhost&#8217;umuzda kullanmayı tarif edeceğim.<span id="more-143"></span></p>
<p>IIS7 de sertifika oluşturmak için herhangi bir dosya indirip kurmamıza gerek yok. Seleflerine oranla bu işi en rahat halleden sistem IIS7.</p>
<p>Öncelikle <strong>Denetim Masası > Yönetimsel Araçlar</strong> altından <strong>IIS Yöneticisini</strong> açın.<br />
<strong>Bağlantılar </strong>bölümünde en üst noktaya tıklayın ardından <strong>Sunucu Sertifikaları</strong>&#8216;na çift tıklayarak açın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/1.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/1-300x214.jpg" alt="IIS Ana Penceresi" title="IIS Ana Penceresi" width="300" height="214" class="aligncenter size-medium wp-image-144" /></a></p>
<p>Sağ kısımda &#8220;<strong>Eylemler</strong>&#8221; başlığı altındaki &#8220;<strong>Otomatik olarak imzalanan sertifika oluştur</strong>&#8220;a tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/2.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/2.jpg" alt="Sertifika Oluştur" title="Sertifika Oluştur" width="220" height="247" class="aligncenter size-full wp-image-146" /></a></p>
<p>Açılan penceredeki &#8220;<strong>Sertifika için bir kolay ad belirtin</strong>&#8221; kutusuna sertifikayı kullanmak istediğiniz sitenin domainini yazın ve Tamam&#8217;a tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/3.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/3-300x113.jpg" alt="Domain belirtin" title="Domain belirtin" width="300" height="113" class="aligncenter size-medium wp-image-148" /></a></p>
<p>&#8220;<strong>Sunucu sertifikaları</strong>&#8221; bölümünde sertifikanızı görüyor olmalısınız. Şimdi bu sertifikayı domainimize bağlayalım.</p>
<p>Sağ kısımdaki Bağlantılar altından Siteler&#8217;e tıklayıp sertifikayı bağlamak istediğimiz sitenin üzerine, ardından &#8220;Eylemler&#8221; bölmesinden &#8220;<strong>Bağlamalar</strong>&#8220;a tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/4.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/4-300x214.jpg" alt="Sertifikayı bağlamak istediğiniz siteyi seçin" title="Sertifikayı bağlamak istediğiniz siteyi seçin" width="300" height="214" class="aligncenter size-medium wp-image-149" /></a></p>
<p>&#8220;<strong>Site Bağlamaları</strong>&#8221; penceresinde &#8220;<strong>Ekle</strong>&#8221; butonuna tıklayın. Ekleme ekranından &#8220;<strong>Tür</strong>&#8220;ü <strong>https </strong>olarak seçin. SSL Sertifikası kutusundan da az önce oluşturduğunuz sertifikayı seçip &#8220;<strong>Tamam</strong>&#8220;a ardından &#8220;<strong>Kapat</strong>&#8220;a tıklayın.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/5.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/5-300x162.jpg" alt="SSL&#039;i Domaine Bağlayın" title="SSL&#039;i Domaine Bağlayın" width="300" height="162" class="aligncenter size-medium wp-image-151" /></a></p>
<p>Tüm işlemler tamamlandı. Artık https ile sunucumuza bağlanabiliriz. Bunun için Eylemler penceresinde &#8220;Web Sitesine Gözat&#8221; başlığının altındaki https linkine tıklayabilir ya da tarayıcınızın adres çubuğuna &#8220;https://DOMAININIZ&#8221; yazarak test edebilirsiniz.<br />
<a href="http://tuncay.kinali.net/wp-content/uploads/2009/08/6.jpg"><img src="http://tuncay.kinali.net/wp-content/uploads/2009/08/6.jpg" alt="Bağlantınızı test edin" title="Bağlantınızı test edin" width="214" height="72" class="aligncenter size-full wp-image-152" /></a><br />
<!--pagetitle:IIS7 ile Self-Signed Certificate oluşturma ve kullanma--></p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/kendi-bilgisayarinizda-ssl-ile-calisin-vista-iis7.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server&#8217;da 587 numaralı portu kullanıma açma</title>
		<link>http://tuncay.kinali.net/windows-serverda-587-numarali-portu-kullanima-acma.html</link>
		<comments>http://tuncay.kinali.net/windows-serverda-587-numarali-portu-kullanima-acma.html#comments</comments>
		<pubDate>Fri, 24 Jul 2009 08:59:44 +0000</pubDate>
		<dc:creator>Sniper</dc:creator>
				<category><![CDATA[Windows 2003]]></category>
		<category><![CDATA[İpuçları]]></category>
		<category><![CDATA[25]]></category>
		<category><![CDATA[587]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[türk telekom]]></category>

		<guid isPermaLink="false">http://tuncay.kinali.net/?p=132</guid>
		<description><![CDATA[Bilindiği gibi Türk Telekom, spam mail gönderimlerine engel olma amacıyla 25 numaralı portu dinamik IP&#8217;li kullanıcılarına kapattı. Bunun yerine 587 numaralı port kullanma zorunluluğu getirildi. Konuyla yakından ilgili olmadığım için ne kadar faydalı ya da zararlı olduğu konusunda yorum yapmayacağım. Benim anlatacağım konu, yönettiğimiz sunucuya 587 numaralı porttan nasıl erişim sağlayabileceğimiz olacaktır.

Öncelikle kullandığımız firewall&#8217;da 587 [...]]]></description>
			<content:encoded><![CDATA[<p>Bilindiği gibi Türk Telekom, spam mail gönderimlerine engel olma amacıyla 25 numaralı portu dinamik IP&#8217;li kullanıcılarına kapattı. Bunun yerine 587 numaralı port kullanma zorunluluğu getirildi. Konuyla yakından ilgili olmadığım için ne kadar faydalı ya da zararlı olduğu konusunda yorum yapmayacağım. Benim anlatacağım konu, yönettiğimiz sunucuya 587 numaralı porttan nasıl erişim sağlayabileceğimiz olacaktır.<br />
<span id="more-132"></span><br />
Öncelikle kullandığımız firewall&#8217;da 587 numaralı TCP portunu güvenilir olarak ayarlamalıyız. Ben Windows Firewall kullandığım için bunun üzerinden tarif edeceğim. Farklı firewall kullananlar programın yardım sayfasından istenilen portlara nasıl izin verileceğini bulabilirler.</p>
<ul>
<li><strong>Start > Settings > Control Panel</strong> menüsüne tıklayın.</li>
<li><strong>Windows Firewall</strong>ı açın ve <strong>Exceptions</strong> sekmesine geçin.</li>
<li><strong>Add Port</strong> butonuna tıklayın.</li>
<li>Açılan pencerede Name alanına &#8220;<strong>SMTP</strong> <strong>587</strong>&#8221; (ya da istediğiniz herhangi bir isim) yazın, &#8220;<strong>Port number</strong>&#8220;a ise <strong>587</strong> yazın ve <strong>TCP</strong>&#8216;yi işaretleyin.</li>
<li>Tüm pencereler kapanana kadar <strong>OK</strong> butonlarına tıklayın.</li>
</ul>
<p>Eğer sunucunuzda &#8220;<strong>TCP/IP Filtering</strong>&#8221; özelliği aktif değilse buraya kadar yaptığımız işlemle artık sunucumuzun 587 numaralı portuna erişebiliriz. Ama TCP/IP Filtering etkinse bir ayar da orada yapmamız gerekir.</p>
<ul>
<li><strong>Start > Settings > Control Panel</strong> menüsüne tıklayın.</li>
<li><strong>Network Connections</strong>&#8216;a tıklayıp açın.</li>
<li><strong>Local Area Connection</strong>&#8216;a sağ tıklayıp <strong>Properties</strong>&#8216;i seçin.</li>
<li>Açılan penceredeki seçme kutusundan <strong>Internet Protocol (TCP/IP)</strong>&#8216;ye bir kez tıkladıktan sonra aktif olan <strong>Properties</strong> butonuna tıklayın.</li>
<li>Açılan pencerede <strong>Advanced&#8230;</strong> butonuna tıklayın.</li>
<li>Options sekmesine geçip <strong>TCP/IP filtering</strong> seçiliyken <strong>Properties</strong> butonuna tıklayın.</li>
<li><strong>TCP Ports</strong> alanında <strong>Permit All</strong> seçiliyse herhangi bir ekleme yapmanıza gerek yok. Tüm pencereler kapanana kadar <strong>OK</strong> butonlarına tıklayın ve bundan sonraki adımları görmezden gelin.</li>
<li><strong>Permit Only</strong> seçili ise <strong>Add&#8230;</strong> butonuna tıklayın.</li>
<li><strong>TCP Port</strong> kutucuğuna <strong>587</strong> yazıp <strong>OK</strong>&#8216;a tıklayın.</li>
<li>Tüm pencereler kapanana kadar &#8220;<strong>OK</strong>&#8221; butonlarına tıklayın.</li>
</ul>
<p>Artık sunucunuza 587 numaralı porttan bağlanmak için önünüzde bir engel kalmadı. Bundan sonra tek yapmanız gereken mail sunucunuzun SMTP ayarlarından dinleme portlarına 587&#8242;yi de eklemek.</p>
]]></content:encoded>
			<wfw:commentRss>http://tuncay.kinali.net/windows-serverda-587-numarali-portu-kullanima-acma.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
