<?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>Microturk :: The Serbest Blog &#187; Programlama</title>
	<atom:link href="http://www.microturk.net/category/programlama/feed" rel="self" type="application/rss+xml" />
	<link>http://www.microturk.net</link>
	<description>Çek bana bi&#039; acılı</description>
	<lastBuildDate>Sun, 15 Jan 2012 17:07:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Php ve Geleceği</title>
		<link>http://www.microturk.net/bilgisayar/php-ve-gelecegi</link>
		<comments>http://www.microturk.net/bilgisayar/php-ve-gelecegi#comments</comments>
		<pubDate>Mon, 16 May 2011 09:50:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[64 bit]]></category>
		<category><![CDATA[geleceği]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nedir]]></category>
		<category><![CDATA[php6]]></category>
		<category><![CDATA[trunk]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.microturk.net/?p=423</guid>
		<description><![CDATA[Hepinizin bildiği gibi programlama günümüzde her mühendisin hatta bilimle uğraşan herkesin öğrenmesi gereken bir kavram haline geldi. İhtiyaçlarımıza göre seçebileceğimiz yüzlerce programlama dili mevcut ve seçim yapmak gerçekten kolay değil. Kime sorarsanız farklı bir cevap alırsınız bunun nedeni seçilen dilin kişinin alışkanlıklarına ve ihtiyaçlarına göre farklılık göstermesidir. Bu bağlamda kullanacağınız programlama dilini ihtiyaçlarınıza ve deneyimlerinize [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.microturk.net/pics/php_ve_gelecegi.jpg" alt="" width="127" height="127" />Hepinizin bildiği gibi programlama günümüzde her mühendisin hatta bilimle uğraşan herkesin öğrenmesi gereken bir kavram haline geldi. İhtiyaçlarımıza göre seçebileceğimiz yüzlerce programlama dili mevcut ve seçim yapmak gerçekten kolay değil. Kime sorarsanız farklı bir cevap alırsınız bunun nedeni seçilen dilin kişinin alışkanlıklarına ve ihtiyaçlarına göre farklılık göstermesidir. Bu bağlamda kullanacağınız programlama dilini ihtiyaçlarınıza ve deneyimlerinize göre kendiniz belirlediğinizde daha verimli işler çıkarmanız daha kolay olacaktır.</p>
<p>Gelecek paragraflarda sunucu taraflı yorumlanan bir programlama dili olan PHP’den <em>(</em><em>PHP: Hypertext Preprocessor – Açılımın içinde de kendi adını içeren açık kaynak kodlu bazı projelerde yer alan sonsuz döngü mevcut, örneğin GNU [Gnu is Not Unix]</em><em>)</em> bahsedeceğim. Yazı PHP’yi öğretme amaçlı değil genel kapsamda PHP nedir sorusuna cevap vermek amacıyla yazılmıştır. PHP’yi öğrenmeye karar vermeniz durumunda, ki bunun için yazıyı sonuna kadar okumanız gerekmektedir, son paragrafta birkaç kitaptan ve çevrimiçi olarak erişebileceğiniz birkaç websitesinden bahsedeceğim.</p>
<p>PHP her yorumlanan dilde olduğu gibi kod her çalıştırıldığında kullanıcıya verilecek çıktının tekrar oluşturulmasını sağlayan ‘programlama dilimsi’dir. PHP yorumlayıcısı kod dosyalarının <em>(.php, .php5 vs.)</em> barındırıldığı sunucuda bulunan bir yazılımdır. Bu yazılım sayesinde PHP dosyalarındaki kodlar yorumlanarak saf HTML olarak kullanıcıya sunulmaktadır. Asıl PHP kodlarını ziyaretçiler asla göremezler. Böylelikle işlemler sırasında kullandığımız gizli veriler yetkisiz kişilerin eline geçmemiş olur.</p>
<p>Birçok, neredeyse tüm, programlama dilinde olduğu gibi PHP’de de değişkenler, mantıksal işleçler, diziler, fonksiyonlar, döngüler ve koşullar mevcut. Beni en çok çeken yönlerinden biri değişken türleri belirtmemize gerek kalmadan tanımlama yapabilmemiz ve farklı değişken türlerini dönüştürmeden işleme sokabilmemiz olmuştu. Böylelikle bir nevi programlama bürokrasileriden kurtulup işlemlere yoğunlaşmamız kolaylaşmış oluyor. Kendi bakış açımdan algıladığım diğer artı yönleri ise söz diziminin genel birçok dille benzerlik göstermesi <em>(örneğin C)</em> ve çabuk öğrenilebilmesi, açık kaynak kodlu olup sürekli gönüllü geliştiriciler tarafından daha da iyileştirilmesi, UNIX, Linux, Windows gibi platformları ayırt etmeden ‘neredeyse’ tüm platformlarda sorunsuz çalışabilmesi ve birçok veritabanı ile bağlantı kurarak veri alışverişi sağlayabilmesi sayılabilir.</p>
<p>PHP şuan 5.3.6 kararlı sürümünde ve PHP 6 çok uzak görünmüyor. Aslında PHP 6’nın ilk çalışmaları ve ipuçları 2005 ortalarında gelmeye başladı. Evet haklısınız, biraz yavaş ilerliyor ancak PHP ekibinin güvenlik politikası nedeniyle bazı şeyler kesinleşmeden betalara bile geçilmiyor hatta şuan 2005 ortalarında trunk<sup>1’</sup>ta yer alan PHP 6 geliştirici sürümü olarak bile trunk’ta mevcut değil. Bu bence gayet doğru bir karar, sunucu taraflı yazılım dillerinin çok özellikli olmak yerine daha güvenli olmaları gerekmektedir ki zaten PHP 5 özellikleri açısından çok çok başarılı. Bu başarı PHP 6 ile daha da büyüyecek.</p>
<p>PHP 6 ile gelecek olan ve göze çarpan bazı özellikler şu şekilde; 64 bit tam sayı değişken tanımlayabilme, çok boyutlu dizilere foreach ile kolayca erişim sağlayabilme, string işlemlerinde yakın anlama gelen {} ve []’den {}’in tamamen kaldırılması ve [] işaretinin substr gibi işlemleri kendinden içermesi ve nesne yönelimli programlamayı daha sağlıklı kılacak birçok nesne yönelimli değişiklik.</p>
<p>Genel anlamda çevrimiçi projeler üzerine çalışmayı düşünüyorsanız ve sunucu taraflı yazılım geliştirmeye ilgi duyuyorsanız PHP, hem ücretsiz olması, hem eğitsel kaynak bolluğu hem de birlikte çalışabilen yazılım sayısı ile, yapılabilecek en iyi tercih. Yazının en başında da uyardığım gibi PHP programlama ile ilgili herhangi bir giriş yapmadım ama söz verdiğim gibi bu paragrafın bitiminde Türkçe ve İngilizce kaynakları paylaşıp birkaç basılı kitap önerisi yapacağım ama bu demek değildir ki çevrimiçi veya basılı olarak bulduğunuz diğer PHP kaynaklarını gözardı edin. Vaktiniz ve şevkiniz el verdiği sürece okuyun, pratik yapın ve araştırın. Programlama derste değil isteyip araştırarak öğrenilir.</p>
<ul>
<li><a href="http://www.php.net/">http://www.php.net/</a> &#8211; PHP’nin resmi sayfası ve neredeyse herşey için ayrıntılı tanım ve örnek içeriyor.</li>
<li><a href="http://www.belgeler.org/hpm/">http://www.belgeler.org/hpm/</a> &#8211; Türk açık kaynak gönüllüleri tarafından idame ettirilen belgeler.org üzerindeki “Fehmi Noyan İSİ” ve “Nilgün Belma Bugüner” emeği “HTML ile Web Tasarımına ve PHP-MySQL ile Web Programcılığına Giriş” makalesi.</li>
<li><a href="http://www.php.org.tr/">http://www.php.org.tr/</a> &#8211; Türkiye PHP Grubu resmi web sayfası</li>
<li>Kitap: PHP ile Web Programcılığı &#8211; Mehmet Şamlı, Pusula Yayıncılık</li>
<li>Kitap: PHP and MySQL Web Development &#8211; Addison-Wesley Professional</li>
</ul>
<p>1.  Trunk: Sürümü belli olmayan geliştirme sürümlerinin yer aldığı geliştirici alanı.</p>
<blockquote><p><em>&lt;?php echo “Görüşmek üzere”; ?&gt;<br />
</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.microturk.net/bilgisayar/php-ve-gelecegi/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple HTML DOM Parser kullanarak HTML işleme</title>
		<link>http://www.microturk.net/html/simple-html-dom-parser-kullanarak-html-isleme</link>
		<comments>http://www.microturk.net/html/simple-html-dom-parser-kullanarak-html-isleme#comments</comments>
		<pubDate>Sat, 31 Jul 2010 12:12:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Html]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[allow_url_fopen]]></category>
		<category><![CDATA[çekme]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[innertext]]></category>
		<category><![CDATA[load_file]]></category>
		<category><![CDATA[outertext]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[php ile veri okutma]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[plaintext]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[simple_html_dom]]></category>
		<category><![CDATA[simple_html_dom.php]]></category>
		<category><![CDATA[veri]]></category>

		<guid isPermaLink="false">http://www.microturk.net/?p=396</guid>
		<description><![CDATA[Bir projenizde HTML dosyalarıyla işlem yapmanız gerektiğini düşünün. Kaynağı önemli değil, yerel veya uzak bir dosya olabilir, ya da anlık olarak oluşturulmuş bir html çıktısı olabilir. Bahsi geçen dosyadan veri çekmek, değiştirmek ve tekrar çıktı yapmak için regular expressions (düzenli ifadeler) her zaman için çözüm yolu değildir. Bu örneğimizde php kullanarak html dosyalarından nasıl veri [...]]]></description>
			<content:encoded><![CDATA[<p>Bir projenizde HTML dosyalarıyla işlem yapmanız gerektiğini düşünün. Kaynağı önemli değil, yerel veya uzak bir dosya olabilir, ya da anlık olarak oluşturulmuş bir html çıktısı olabilir. Bahsi geçen dosyadan veri çekmek, değiştirmek ve tekrar çıktı yapmak için regular expressions (düzenli ifadeler) her zaman için çözüm yolu değildir. Bu örneğimizde php kullanarak html dosyalarından nasıl veri çekileceğini göreceğiz.</p>
<h2>1. Hazırlık</h2>
<p>İlk yapmamız gereken şey <a href="http://sourceforge.net/projects/simplehtmldom/files/">Php Simple Html Dom Parser</a> adlı kütüphane dosyasını bilgisayarımıza indirmek. İndireceğiniz zip dosyasında birkaç dosya var ancak asıl işimize yarayacak olan <em>simple_html_dom.php, </em>diğerleri örnekler ve yardım dosyaları.</p>
<h2>2. Basit Örnekler</h2>
<p>Kütüphanenin kullanımı oldukça kolay ancak yine de bazı basit işlevlerini incelemek ve mantığını kavramak gerekiyor.</p>
<h3>Html Dosyasını Tanıtma</h3>
<pre class="brush: php; title: ; notranslate">
$html = new simple_html_dom();

// metin olarak tanıtma
$html-&gt;load('&lt;html&gt;&lt;body&gt;&lt;p&gt;Merhaba Dünya!&lt;/p&gt;&lt;p&gt;İşte ilk örneğimiz&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;');

// dosyadan tanıtma
$html-&gt;load_file('http://arsiv.microturk.net/');
</pre>
<p>Dosya tanıtma işleminizi örnekte olduğu gibi ister metin olarak isterseniz de dosya olarak yapabilirsiniz. Dosya olarak tanıtmanında seçenekleri mevcuttur. Dosya ister uzak bir sunucuda olabilir ya da kodumuzun çalıştığı yere sunucu da olabilir.</p>
<p><strong>Not:</strong><em> load_file()</em> fonksiyonunun uzak sunucudan dosya çekebilmesi için <span style="text-decoration: underline;">php.ini</span> dosyasındaki &#8220;allow_url_fopen&#8221; değeri <em>true </em>olarak aktif olmalıdır.</p>
<h3>Verilere Erişim</h3>
<p><img class="aligncenter" src="http://microturk.net/pics/php_html_parser_degisim.png" alt="" width="716" height="157" />DOM nesnemizi oluşturduktan sonra find() fonksiyonunu kullanarak dosyamızda koleksiyonlarla işlem yapmaya başlayabiliriz. Koleksiyon seçiciler ile bulunan nesneler grubuna verilen addır. Kullanılan söz dizimi jQuery ile oldukça benzerlik göstermektedir o yüzden jQuery kullananlar için alışması hiçte zor olmayacaktır.</p>
<pre class="brush: php; title: ; notranslate">
// HTML'i oluştur ve yükle
include('simple_html_dom.php');
$html = new simple_html_dom();
$html-&gt;load('&lt;html&gt;&lt;body&gt;&lt;p&gt;Merhaba Dünya!&lt;/p&gt;&lt;p&gt;İşte ilk örneğimiz&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;');

// ikinci paragrafı bulabilmek için &quot;p&quot; etiketini aratıyoruz
$element = $html-&gt;find(&quot;p&quot;);

//ikinci bulunan &quot;p&quot; etiketine ekleme yap
$element[1]-&gt;innertext .= &quot; ve devamı da gelecek.&quot;;

echo $html-&gt;save();
</pre>
<p><strong>2-4 paragrafları:</strong> Önceki örnekte de açıklandığı gibi dosyayı tanıtma ve yükleme işlemi.</p>
<p><strong>7. paragraf:</strong> Dosyadaki tüm &#8220;p&#8221; etiketleri bulur ve 0&#8242;dan başlayarak bir array&#8217;a atama yapar.</p>
<p><strong>10. paragraf:</strong> Bu satırda 2. bulunan &#8220;p&#8221; etiketine ekleme yapılıyor. Satırda kullanılan innertext işleci sayesinde bulunan nesnenin sadece metin kısmında işlem yapılır. Eğer outertext işlecini kullansaydık bulunan nesnedeki tüm etiketler de işleme alınacaktı.</p>
<p>Birkaç satır daha ekleyerek işlem yaptığımız 2. &#8220;p&#8221; etiketine class özelliği ekleyeceğiz.</p>
<pre class="brush: php; title: ; notranslate">
 $element[1]-&gt;class = &quot;ornek&quot;;
 echo $html-&gt;save();
</pre>
<h3>Diğer Seçici Betikler</h3>
<p>Aşağıdaki kullanabileceğiz bazı diğer seçici betikleri de veriyorum. jQuery kullanmışsanız ya da kullanıyorsanız eminim çok tanıdık gelecektir.</p>
<pre class="brush: php; title: ; notranslate">
# ilk id=&quot;foo&quot; nesnesini bul
$tekil= $html-&gt;find('#foo', 0);

# tüm class=&quot;foo&quot; olan nesneleri bul
$koleksiyon= $html-&gt;find('.foo');

# dosyadaki tüm a etiketlerini bul
$koleksiyon= $html-&gt;find('a');

# h1 içinde yer alan tüm a etiketlerini bul
$koleksiyon= $html-&gt;find('h1 a');

# title özelliği &quot;resimler&quot; olan tüm img etiketlerini bul
$koleksiyon= $html-&gt;find('img[title=resimler]');
</pre>
<p>İlk örnekte 0 değerini vererek sadece ilk bulunan nesnenin işleme alınmasını sağladık. Diğer koleksiyonlarda ise tüm nesneler işleme alınıyor. <a href="http://simplehtmldom.sourceforge.net/manual.htm">Kütüphanenin kullanma kılavuzuna buradan erişebilirsiniz.</a></p>
<p><img class="aligncenter" src="http://microturk.net/pics/php_html_parser_diger.png" alt="" width="571" height="173" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.microturk.net/html/simple-html-dom-parser-kullanarak-html-isleme/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript ile grafik çizimleri</title>
		<link>http://www.microturk.net/programlama/javascript-ile-grafik-cizimleri</link>
		<comments>http://www.microturk.net/programlama/javascript-ile-grafik-cizimleri#comments</comments>
		<pubDate>Tue, 07 Aug 2007 07:29:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programlama]]></category>

		<guid isPermaLink="false">http://www.microturk.net/programlama/javascript-ile-grafik-cizimleri/</guid>
		<description><![CDATA[Bu sayfada ingilizce olarak bahsedilen javascript kullanarak grafik çizimlerinden bahsedeceğiz. Anket, istatistik vs. gibi web uygulamalarında sonuçları grafiksel olarak göstermek için .gif, .jpg gibi resim formatlarını kullanırız. Ancak bu her zaman tam istediğimiz kalitede bir grafik elde etmemizi sağlamaz çünkü asıl amacımız sonucu daha anlaşılır biçimde göstermektir. İşte bu gibi durumlarda Web 2.0 ile daha [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm">Bu sayfada</a> ingilizce olarak bahsedilen javascript kullanarak grafik çizimlerinden bahsedeceğiz.</p>
<p>Anket, istatistik vs. gibi web uygulamalarında sonuçları grafiksel olarak göstermek için .gif, .jpg gibi resim formatlarını kullanırız. Ancak bu her zaman tam istediğimiz kalitede bir grafik elde etmemizi sağlamaz çünkü asıl amacımız sonucu daha anlaşılır biçimde göstermektir. İşte bu gibi durumlarda Web 2.0 ile daha çok kullanılmaya başlanan JavaScript imdadımıza yetişir.</p>
<p><img src="http://img66.imageshack.us/img66/6070/adszuy6.jpg" alt="" align="left" /><br />
Üstte bahsettiğim sitede en üstte banner niyetine duran grafikler tamamen bu yöntem ile yapılmıştır.</p>
<p>Deneme yapabilmek için <a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip">wz_jsgraphics.zip</a> kütüphanesini indirin ve sayfanıza aşağıdaki kod ile ekleyin.</p>
<pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;wz_jsgraphics.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Gerisi zaten bahsettiğim sayfada ayrıntılı olarak anlatılıyor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.microturk.net/programlama/javascript-ile-grafik-cizimleri/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

