<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1662453703205024806</id><updated>2011-11-17T12:47:38.799-08:00</updated><category term='PHP ile Veritabanı'/><category term='Eşitliğini kontrol eden'/><category term='php ye giriş'/><category term='dosyanıza resim gömmek'/><category term='php bot'/><category term='RSS export mekanizması'/><category term='Php dili'/><category term='Dizi-Değişkenler'/><category term='phpprogramlama'/><category term='Php info php ye giriş'/><category term='PHP ile Neler Yapılabilir?'/><category term='Php içindekiler'/><category term='PHP dosyanıza resim gömmek'/><category term='Php de Birleştirme oparatörü'/><category term='PHP Nedir?'/><category term='PHP&apos;nin Yapı Taşları'/><category term='Metin Düzenleme ve Düzenli İfadeler'/><category term='Çarpma işlemi'/><category term='PHP&apos;de Güvenlik'/><category term='PHP&apos;de Program Denetimi'/><category term='bot yapmak icin'/><category term='base64'/><category term='php de rss'/><category term='Php Fonksiyonlar'/><category term='RSS'/><category term='PHp de dosya işlemleri'/><category term='çift sayıların toplamı'/><category term='php programlama'/><category term='Not ortalaması hesaplama'/><category term='arttırma eksiltme oparötörü'/><category term='ease php programı indir'/><category term='Kur hesaplama'/><category term='php resim'/><category term='php de ıconv'/><category term='0 dan 100 e'/><category term='Süper-Global Diziler'/><title type='text'>PHP</title><subtitle type='html'>Php içindekiler | php ye giriş | Php dili | PHP'nin Yapı Taşları |PHP'de Program Denetimi | Php Fonksiyonlar |Dizi-Değişkenler, Nesneler | PHp de dosya işlemleri Dosya İşlemleri |Metin Düzenleme ve Düzenli İfadeler |PHP ile Veritabanı | PHP'de Güvenlik</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-2126550924719734231</id><published>2008-10-29T13:41:00.000-07:00</published><updated>2008-10-29T13:43:01.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php bot'/><category scheme='http://www.blogger.com/atom/ns#' term='bot yapmak icin'/><title type='text'>Php de bot yapmak icin</title><content type='html'>Curl Ve preg_match_all fonksiyonları&lt;br /&gt;file_get_contents &lt;br /&gt;Diziler "array" &lt;br /&gt;for döngüsü ile sayıyı 1er arttırıp arrayın argümanını bulması için arttırma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-2126550924719734231?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/2126550924719734231/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=2126550924719734231' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/2126550924719734231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/2126550924719734231'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/10/php-de-bot-yapmak-icin.html' title='Php de bot yapmak icin'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-7475902870024610364</id><published>2008-07-31T15:03:00.000-07:00</published><updated>2008-10-13T13:10:24.203-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dosyanıza resim gömmek'/><category scheme='http://www.blogger.com/atom/ns#' term='base64'/><category scheme='http://www.blogger.com/atom/ns#' term='PHp de dosya işlemleri'/><category scheme='http://www.blogger.com/atom/ns#' term='php resim'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP dosyanıza resim gömmek'/><title type='text'>PHP dosyanıza resim (dosya) gömmek</title><content type='html'>Böyle birşeye neden ihtiyaç duyarsınız?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;          En büyük nedeni, tek dosyadan oluşan bir script yazıyor olabilirsiniz (konuyla ilgili olarak &lt;a href="http://www.mfyz.com/?/dokuman/101/tek-dosyali-projeler-siteler-uretmek/"&gt;PHP&amp;nbsp;ile tek dosyadan oluşan proje üretmek&lt;/a&gt; dökümanını okuyabilirsiniz). Ya da yazdığınız projede kullandığınız ufacık ikonların bir sürü dosya şeklinde durmasını istemiyor olabilirsiniz. Başka bir tercih de dosyalarınızı bir veritabanında tutuyormuşcasına tek dosyada depolamak isteyebilirsiniz. Çok küçük boyutlu resimler için bahsettiğim konu daha yaygın kullanılır.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          Yani yazdığınız betik kendi içindeki &lt;span class="oto-ipucu" title="Cascading&amp;nbsp;Style&amp;nbsp;Sheets&amp;nbsp;:&amp;nbsp;HTML´deki&amp;nbsp;nesneleri&amp;nbsp;oldukça&lt;br&gt;esnek&amp;nbsp;biçimde&amp;nbsp;değiştirebilmemizi&amp;nbsp;sağlayan&amp;nbsp;yapıdır"&gt;css&lt;/span&gt; kuralları ile şekillendirilmiş, ikonlarla da güçlendilirmişse ve ikonlar için ek dosyalar koymak istemiyorsanız bu yöntemi kullanabilirsiniz.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;h3&gt;Teknik&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;          Aslında yapılan iş oldukça basit. Öncelikle dosyalarımızı &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyamızın içine nasıl gömeceğiz? &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;PHP&lt;/a&gt; dosyalarımız ascii dosyalar, binary içeriği alabilmek ve saklayabilmek için base64 ile şifreleyeceğiz. Sonuçta ortaya çıkacak olan şey bir ascii şifre olacaktır. Dosya boyutuna göre bu şifrenin uzunluğu artacaktır. Unutmayın ki bu anlattığım yöntem tamamen ufak dosyaları gömmek içindir 100kb üzeri dosyaları &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyanıza gömerseniz, ya da &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyanızın boyutu megabyte'ları aştığı zaman işlenmesi zorlaşacaktır. Birkaç ufak dosya için kullandığınız sürece verimli olacaktır.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          Dosyalarımız encode etmek için bir kod kullanacağız. Bu işlemi başka bir &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyası oluşturarak yapın.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$dosya&lt;/span&gt; = &lt;span style="color: #ff0000;"&gt;'resim.gif'&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// dosya icerigini okuyalim&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$dosya_binary&lt;/span&gt; = &lt;a target="_blank" href="http://www.php.net/fopen"&gt;&lt;span style="color: #000066;"&gt;fopen&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$dosya&lt;/span&gt;, &lt;span style="color: #ff0000;"&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$icerik_binary&lt;/span&gt; = &lt;a target="_blank" href="http://www.php.net/fread"&gt;&lt;span style="color: #000066;"&gt;fread&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$dosya_binary&lt;/span&gt;, &lt;a target="_blank" href="http://www.php.net/filesize"&gt;&lt;span style="color: #000066;"&gt;filesize&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$dosya&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;a target="_blank" href="http://www.php.net/fclose"&gt;&lt;span style="color: #000066;"&gt;fclose&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$dosya_binary&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// binary icerigi ascii'ye base64 ile cevirelim&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$icerik_ascii&lt;/span&gt; = &lt;a target="_blank" href="http://www.php.net/base64_encode"&gt;&lt;span style="color: #000066;"&gt;base64_encode&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$icerik_binary&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;a target="_blank" href="http://www.php.net/print"&gt;&lt;span style="color: #000066;"&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #0000ff;"&gt;$icerik_ascii&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          Bu kod resim.gif dosyasını ekrana ascii karakterlerle şifrelenmiş şekilde uzun bir metin şeklinde basacaktır. Bu metini kopyalayarak kullanacağız ve orjinal proje dosyamız şöyle olacak&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// dosyalar&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;resim.gif&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; = &lt;span style="color: #ff0000;"&gt;&amp;quot;R0lGODlhEAAQAMQAAGZmZsbGxaSko4OEgxl4ueT//3G59ejo6Lu7u9zd3&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;DOMxXp6eqjU/5mZmX+RmdPU1LKzsfb29v///3u75a2tpY6OjczMzDqPz6&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;ysq////wAAAAAAAAAAAAAAAAAAAAAAACH5BAUUABkALAAAAAAQABAAAAW&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;JYIaNJDlNWZpiUuu2U4GqrHPd+MTItHQZEoPQoNvNWISkkjBROBUpgQQT&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;qVojj6wgOg0IAAEAQBBgbTMNiSCRALDDCWkjlRYcDoBD+C5PVSQNCAgAg&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;wKCaRV+gBZfYWIWiCkDEhVslpZ/AykLlBCen55/C5sSAw2nqKeToxmcL6&amp;quot;&lt;/span&gt;.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;quot;8trAuztLW1GSEAOw==&amp;quot;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          Yukarıda gördüğünüz şey aslında çok uzun bir string. Yani o satırlar yan yana bitişik fakat ben bu dökümanda açıkca görülebilmesi için bu hale getirdim. Bu gördüğünüz string 258 byte'lık 16x16'lık bir ikonun base64 şifresidir. 258 byte'ın bu kadar sürdüğünü düşünürseniz 10-20kb'lık bir dosyanın ne kadar uzun süreceğini tahmin edebilirsiniz. Onun için büyük dosyalarınızı &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyanıza gömmeyin.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          Yukarıdaki şekilde tüm dosyalarınızı base64_encode'dan geçirip $dosyalar dizisine dosyanın adını taşıyan indiste yazın.&lt;br /&gt;&lt;br /&gt;          Unutmayın bu dizi proje dosyanızın en üstünde tanımlanmalı. Yani proje dosyanızın içinde her türlü işlemi yapıyor olabilirsiniz ama bu teknikteki kodlar dosyanın en üstünde durmalı.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          Neyse, dosyalarınızı $dosyalar dizisine kendi adları indis olacak şekilde kaydettiniz. &lt;a href="http://www.php.net" target="_blank" class="oto-ipucu" title="&lt;b&gt;PHP&lt;/b&gt;&amp;nbsp;:&amp;nbsp;Hypertext&amp;nbsp;Preprocessor"&gt;php&lt;/a&gt; dosyanızın boyutu kabardı farkındaysanız (kontrol ediniz). Şimdi bu tanımların ardına ufak bir kod ile işlemi bitireceğiz.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;$_GET&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;islem&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; == &lt;span style="color: #ff0000;"&gt;'dosya'&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;a target="_blank" href="http://www.php.net/array_key_exists"&gt;&lt;span style="color: #000066;"&gt;array_key_exists&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$_GET&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;dosya&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;a target="_blank" href="http://www.php.net/die"&gt;&lt;span style="color: #000066;"&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;a target="_blank" href="http://www.php.net/base64_decode"&gt;&lt;span style="color: #000066;"&gt;base64_decode&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;$_GET&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;dosya&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #b1b100;"&gt;else&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;a target="_blank" href="http://www.php.net/die"&gt;&lt;span style="color: #000066;"&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;Dosya bulunamadı!&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// projenizin normal işlemlerini bu satırdan sonra&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// yapabilirsiniz.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          Eğer get methodu ile islem değişkeni dosya olarak gelmişse ve get methodu ile dosya değişkeninin içeriği bizim $dosyalar dizisinde indis olarak varsa $dosyalar dizisindeki o elemanın içeriğini base64_decode edip ekrana basıyoruz. Yoksa dosya bulunamadı hatası verip duruyoruz.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;h3&gt;Nasıl kullanacaksınız?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;          Projenin devamındaki bir kısımda&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod html"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;a target="_blank" href="http://december.com/html/4/element/img.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;img&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;src&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;index.php?islem=dosya&amp;amp;dosya=resim.gif&amp;quot;&lt;/span&gt; ...&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          şeklinde kullandığınızda dosyanız resim olarak görüntülenecektir. Aynı şeyi bir arşiv dosyası için de yapabilirsiniz.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod html"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;a target="_blank" href="http://december.com/html/4/element/a.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;a&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;href&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;index.php?islem=dosya&amp;amp;dosya=kurulum_dokumani.pdf&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;Dosyayı indirmek için tıklayın&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          gibi.&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;h3&gt;Dosya deposu&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;          Yukarıdaki kodları ayrı bir dosya olarak kaydedip dosyalarınızı tek parça hale getirdiğiniz bir veritabanı gibi düşünebiliriz. Yani &lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;          &lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// dosyalar&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; = &lt;span style="color: #ff0000;"&gt;&amp;quot;....&amp;quot;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; = &lt;span style="color: #ff0000;"&gt;&amp;quot;....&amp;quot;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;// gosterelim&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;a target="_blank" href="http://www.php.net/array_key_exists"&gt;&lt;span style="color: #000066;"&gt;array_key_exists&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;$_GET&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;dosya&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;a target="_blank" href="http://www.php.net/die"&gt;&lt;span style="color: #000066;"&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;a target="_blank" href="http://www.php.net/base64_decode"&gt;&lt;span style="color: #000066;"&gt;base64_decode&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;$dosyalar&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;$_GET&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;dosya&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #b1b100;"&gt;else&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;a target="_blank" href="http://www.php.net/die"&gt;&lt;span style="color: #000066;"&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;Dosya bulunamadı!&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;          &lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;          Bu dosyaya goster.php, resimler.php veya indir.php diyebilirsiniz. Kullanırken yukarıda index.php olarak gösterdiğimiz yola dosyanızın adını yazın.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-7475902870024610364?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/7475902870024610364/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=7475902870024610364' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7475902870024610364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7475902870024610364'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/php-dosyanza-resim-dosya-gmmek.html' title='PHP dosyanıza resim (dosya) gömmek'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-108296727126173182</id><published>2008-07-31T14:56:00.001-07:00</published><updated>2008-10-13T13:09:11.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSS export mekanizması'/><category scheme='http://www.blogger.com/atom/ns#' term='phpprogramlama'/><category scheme='http://www.blogger.com/atom/ns#' term='php de rss'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='RSS'/><title type='text'>RSS export mekanizması  php ile</title><content type='html'>Sitemize neden &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; hizmeti koymalıyız, Ne işimize yarar?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; günümüz teknolojileri arasında en yaygın takip standardı haline geldi. Şu an insanlar &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; okuyucu programları veya web uygulamalarına takip ettikleri siteler/forumlar/haber kaynaklarına ilişkin kayıtları tek standart'da okumak için ekliyor ve her gün binlerce insan bu sistem sayesinde birçok siteye girmeden tek merkezden çoğu haberi takip edip çoğu gelişmeden haberdar olabiliyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;a target="_blank" href="http://www.php.net/header"&gt;&lt;span style="color: #000066;"&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'Content-type: text/xml'&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;kodunu basıyoruz sayfanın çıktı basılmamış bir kısmına.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Şimdi size 2 kayıtlık bir &lt;span class="oto-ipucu" title="Extensible&amp;nbsp;Markup&amp;nbsp;Language"&gt;XML&lt;/span&gt; çıktısı örneği verip açıklayayım :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="kod-kutu"&gt;&lt;div class="kod xml"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;iso-8859-9&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;rss&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;channel&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;MFYZ.Com Etkinlik Takvimi&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;http://www.mfyz.com/?takvim&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Etkinlik Takvimi&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;language&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;en-us&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/language&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;generator&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;MFYZ.Com RSS Exporter v0.1&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/generator&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;managingEditor&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Mehmet Fatih YILDIZ&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/managingEditor&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;MFYZ v0.6 Test Sürüşü&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;http://www.mfyz.com/?takvim&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Sat, 29 Jul 2006 21:00:00 GMT&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;lt;![CDATA[ Bu etkinlige ait aciklama ]]&amp;gt;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Linux Şenliği 4.Gün&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;http://www.mfyz.com/?takvim&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Sat, 13 May 2006 21:00:00 GMT&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;lt;![CDATA[ HTML etiketleri kullanabilirsiniz. RSS okuyucunuzun yorumlamasýna göre gosterilecektir. ]]&amp;gt;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/channel&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/rss&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Bu gördüğünüz kod &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; işlem sayfanız tarafından çıktısı yapılmış TÜM &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; örneğini ifade ediyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="kod-kutu"&gt;&lt;div class="kod xml"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;MFYZ v0.6 Test Sürüşü&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/title&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;http://www.mfyz.com/?takvim&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/link&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Sat, 29 Jul 2006 21:00:00 GMT&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/pubDate&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&amp;nbsp; &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;lt;![CDATA[ Bu etkinlige ait aciklama ]]&amp;gt;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/description&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/item&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;kod bloğu ise sizin for veya while gibi bir döngü mekanizması ile kayıtlarınızı dönüp çıktısını alacağınız kısımdır. Bunun dışında kalan kısımlar (öncesindeki kısım ve sonrasindaki kısım) sizin statik basacağınız bölümdür.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada dikkat edilmesi gereken nokta pubDate olarak çıktı vereceğiniz tarih yukarıda gödrüğünüz formatta olmak zorundadır.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu tarih formatını "Y-m-d H:i:s" formatındaki genel kullanımdan bu formata;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="kod-kutu"&gt;&lt;div class="kod php"&gt;&lt;ol&gt;&lt;li style="color: black; font-weight: normal; font-style: normal;"&gt;&lt;div style="font-weight: normal;"&gt;&lt;a target="_blank" href="http://www.php.net/gmdate"&gt;&lt;span style="color: #000066;"&gt;gmdate&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'D, d M Y H:i:s'&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;$tarihinize_ait_degisken&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; . &lt;span style="color: #ff0000;"&gt;&amp;quot; GMT&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ile oluşturabilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.önemli konu ise kod olarak basacağınız diğer string'ler yani title ve description etiketlerinin içerisine ekleri ile basmanızdır. Tahmin edeceğiniz gibi link etiketinde ise bu gönderinize ait url/link olacak. &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; çıktısı basan işlemler bundan ibaret.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ben dinamik gönderileri basarken tüm kayıtlarımı &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt;'e yazdırmıyorum. &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; okuyucular genelde yeni eklenen kayıtları saptayıp onları kullanıcıya gösterir. Bu yüzden sitenizde &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; export edeceğiniz kayıt kümesinin güncellenme yoğunluğuna bağlı olarak maksimum 50-100 kayıt bastırın. Çünkü eğer büyük boyutta bir &lt;span class="oto-ipucu" title="Really&amp;nbsp;Simple&amp;nbsp;Syndication&amp;nbsp;:&amp;nbsp;Yeni&amp;nbsp;nesil&amp;nbsp;haber&amp;nbsp;kağıtları"&gt;RSS&lt;/span&gt; çıktınız olursa, hem kullanıcılar tarafından bunun güncellenmesi zor/uzun olacaktır. Hemde gereksiz kayıtları her seferinde boşuna transfer ettirmiş olursunuz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-108296727126173182?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/108296727126173182/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=108296727126173182' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/108296727126173182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/108296727126173182'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/sitemize-neden-rss-hizmeti-koymalyz-ne.html' title='RSS export mekanizması  php ile'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-5157367050747815672</id><published>2008-07-13T06:52:00.000-07:00</published><updated>2008-10-13T13:10:24.203-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='php de ıconv'/><title type='text'>php de ICONV</title><content type='html'>ICONV &lt;br /&gt;Bu fonksiyon kodlamalar arasında dönüşüm sağlayabiliyor. &lt;br /&gt;Aşağıdaki kod ISO-8859-9 ile kodlanmış metni UTF-8 'e dönüştürüyor. PHP 4.0.5 ve üzeri sümler içindir. &lt;br /&gt;$kayit = iconv('ISO-8859-9', 'UTF-8', 'Türkçe karakterler ÜĞİŞÇÖ'); echo $kayit;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-5157367050747815672?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/5157367050747815672/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=5157367050747815672' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/5157367050747815672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/5157367050747815672'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/php-de-iconv.html' title='php de ICONV'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-4904459350030292192</id><published>2008-07-11T12:25:00.000-07:00</published><updated>2008-10-13T13:10:24.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Kur hesaplama'/><title type='text'>Kur hesaplama  phpprogramlama</title><content type='html'>Php de dolar kur hesaplama $ işareti&lt;br /&gt;&lt;br /&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;Kur dolar hesap &lt;/p&gt;&lt;br /&gt;      &lt;p&gt;&amp;lt;?&lt;br /&gt;&lt;br /&gt;        Define(&amp;lsquo;kur&amp;rsquo;,1,25);&lt;br /&gt;&lt;br /&gt;        Echo 1000*kur;&lt;/p&gt;&lt;br /&gt;    &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-4904459350030292192?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/4904459350030292192/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=4904459350030292192' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4904459350030292192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4904459350030292192'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/kur-hesaplama-phpprogramlama.html' title='Kur hesaplama  phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-4188733426537199208</id><published>2008-07-11T12:16:00.000-07:00</published><updated>2008-10-13T13:10:24.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arttırma eksiltme oparötörü'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>arttırma eksiltme oparötörü php programlama</title><content type='html'>artırma eksiltme oparötörü kullanımı phpprogramlama&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;--&amp;nbsp;&amp;nbsp; ++ operat&amp;ouml;rleri&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;&amp;lt;?&lt;br /&gt;&lt;br /&gt;        $a=10&lt;br /&gt;&lt;br /&gt;        $b=$a--;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;ccedil;&amp;#305;kt&amp;#305;s&amp;#305;  10 &lt;br /&gt;&lt;br /&gt;        Echo $b;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;        Echo $b;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-4188733426537199208?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/4188733426537199208/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=4188733426537199208' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4188733426537199208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4188733426537199208'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/arttrma-eksiltme-opartr-php-programlama.html' title='arttırma eksiltme oparötörü php programlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-8386276558469180606</id><published>2008-07-11T12:14:00.000-07:00</published><updated>2008-10-13T13:10:24.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Not ortalaması hesaplama'/><title type='text'>Not ortalaması hesaplama   phpprogramlama</title><content type='html'>Vize &lt;a href=""&gt;final&lt;/a&gt; &lt;a href=""&gt;notları ile not ortalamasını &lt;/a&gt;bulan &lt;a href=""&gt;php &lt;/a&gt;program kodu&lt;br /&gt;&lt;br /&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;&amp;lt;?&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;$d[0][&amp;lsquo;ad&amp;rsquo;]=&amp;rsquo;ali&amp;rsquo;;&lt;br /&gt;&lt;br /&gt;        $d[0][&amp;lsquo;vize&amp;rsquo;]=30;&lt;br /&gt;&lt;br /&gt;        $d[0][&amp;lsquo;final&amp;rsquo;]=80;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;$d[1][&amp;lsquo;ad&amp;rsquo;]=&amp;rsquo;veli&amp;rsquo;;&lt;br /&gt;&lt;br /&gt;        $d[1][&amp;lsquo;vize&amp;rsquo;]=70;&lt;br /&gt;&lt;br /&gt;        $d[1][&amp;lsquo;final&amp;rsquo;]=90;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;Echo $d[0][&amp;lsquo;ad&amp;rsquo;].&amp;rdquo;:&amp;rdquo;;&lt;br /&gt;&lt;br /&gt;        Echo $d[&amp;lsquo;vize&amp;rsquo;]*0,4+$d[0][&amp;lsquo;final&amp;rsquo;]*0,6;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-8386276558469180606?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/8386276558469180606/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=8386276558469180606' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8386276558469180606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8386276558469180606'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/not-ortalamas-hesaplama-phpprogramlama.html' title='Not ortalaması hesaplama   phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-28442076942649821</id><published>2008-07-11T12:12:00.000-07:00</published><updated>2008-10-13T13:10:24.205-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Php de Birleştirme oparatörü'/><title type='text'>Birleştirme oparatörü php de</title><content type='html'>&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;Birle&amp;#351;tirme oparat&amp;ouml;r&amp;uuml; &amp;ldquo;.&amp;rdquo;&lt;br /&gt;&lt;br /&gt;&amp;lt;?&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;$a=&amp;rdquo;ali&amp;rdquo;;$b=&amp;rdquo;can&amp;rdquo;;&lt;br /&gt;&lt;br /&gt;        $c=&amp;rdquo;merhaba&amp;rdquo;,$a.$b;&lt;br /&gt;&lt;br /&gt;        Echo $c;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-28442076942649821?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/28442076942649821/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=28442076942649821' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/28442076942649821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/28442076942649821'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/birletirme-oparatr-php-de.html' title='Birleştirme oparatörü php de'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-339617687766698855</id><published>2008-07-11T12:08:00.000-07:00</published><updated>2008-10-13T13:10:24.205-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Php info php ye giriş'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>Php info php ye giriş</title><content type='html'>&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;Phpinfo= Bilgisayarda y&amp;uuml;kl&amp;uuml; olan php bilgilerini bize verir.&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;Local host Ba&amp;#287;lanma;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;&amp;lt;?&lt;br /&gt;&lt;br /&gt;        echo mysql_connect(&amp;quot;localhost&amp;quot;, &amp;quot;root&amp;quot;,  &amp;quot;&amp;quot;);&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;phpinfo();&lt;/p&gt;&lt;br /&gt;      &lt;div&gt;&lt;br /&gt;        &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;br /&gt;      &lt;/div&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-339617687766698855?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/339617687766698855/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=339617687766698855' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/339617687766698855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/339617687766698855'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/php-info-php-ye-giri.html' title='Php info php ye giriş'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-9193894905267408404</id><published>2008-07-11T11:31:00.000-07:00</published><updated>2008-10-13T13:10:24.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Eşitliğini kontrol eden'/><title type='text'>Eşitliğini kontrol eden php program kodu</title><content type='html'>Sayı eşitmi değilmi kontrol eden php programı&lt;br /&gt;&lt;br /&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;&amp;lt;?&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;$a=3;&lt;br /&gt;&lt;br /&gt;        if ($a==0) echo &amp;quot;a s&amp;#305;f&amp;#305;r e&amp;#351;it&amp;quot;;&lt;br /&gt;&lt;br /&gt;        else if ($a&amp;gt;0) echo &amp;quot;a  s&amp;#305;f&amp;#305;rdan b&amp;uuml;y&amp;uuml;k&amp;quot;;&lt;br /&gt;&lt;br /&gt;        else echo &amp;quot;a s&amp;#305;f&amp;#305;rdan k&amp;uuml;&amp;ccedil;&amp;uuml;k&amp;quot;;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;br /&gt;    &lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-9193894905267408404?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/9193894905267408404/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=9193894905267408404' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/9193894905267408404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/9193894905267408404'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/eitliini-kontrol-eden-php-program-kodu.html' title='Eşitliğini kontrol eden php program kodu'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-1210049968474324017</id><published>2008-07-11T11:24:00.000-07:00</published><updated>2008-10-13T13:10:24.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='çift sayıların toplamı'/><title type='text'>1 den 100 kadar çift sayıların toplamı</title><content type='html'>1 den 100 kadar çift sayıların toplamı php kodu &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code class="html" javascript=""&gt;  &lt;br /&gt;&lt;br /&gt;&lt;?  &lt;?&lt;br /&gt;&lt;br /&gt;$t=0;&lt;br /&gt;&lt;br /&gt;for ($x=1; $x&lt;=100; $x++) &lt;br /&gt;	&lt;br /&gt;	if ($x%2&lt;&gt;0) contine;&lt;br /&gt;	&lt;br /&gt;	$t=$t+$x;&lt;br /&gt;	&lt;br /&gt;	echo "toplam : $t";&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-1210049968474324017?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/1210049968474324017/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=1210049968474324017' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1210049968474324017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1210049968474324017'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/1-den-100-kadar-ift-saylarn-toplam.html' title='1 den 100 kadar çift sayıların toplamı'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-7761801963989341303</id><published>2008-07-11T11:20:00.000-07:00</published><updated>2008-10-13T13:10:24.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Çarpma işlemi'/><title type='text'>php de çarpma işlemi</title><content type='html'>php de çarpma işlemi kodları &lt;br /&gt;&lt;br /&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;&amp;lt;?&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;echo &amp;quot;&amp;lt;table border=1&amp;gt;&amp;quot;;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;for ($x=1; $x&amp;lt;=10; $x++)&lt;/p&gt;&lt;br /&gt;      &lt;p&gt; {&lt;br /&gt;&lt;br /&gt;        echo &amp;quot;&amp;lt;tr&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;        for ($y=1; $y&amp;lt;=10; $y++)&lt;br /&gt;&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        echo &amp;quot;&amp;lt;td&amp;gt;&amp;quot;;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;echo $x*$y;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;echo &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;}&lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;        echo &amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;}&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;echo &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;&lt;/p&gt;&lt;br /&gt;    &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-7761801963989341303?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/7761801963989341303/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=7761801963989341303' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7761801963989341303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7761801963989341303'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/php-de-arpma-ilemi.html' title='php de çarpma işlemi'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-1090302070517908042</id><published>2008-07-11T10:46:00.000-07:00</published><updated>2008-10-13T13:10:24.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='0 dan 100 e'/><title type='text'>0 dan 100 e kadar toplama</title><content type='html'>&lt;a href=""&gt;0 dan 100&lt;/a&gt; e kadar toplama yapan php dilindeki kodu&lt;br /&gt;&lt;strong&gt;&lt;table width="500" border="0" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;  &lt;!--DWLayoutTable--&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td width="14" height="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;    &lt;td width="470" valign="top"&gt;&lt;p&gt;&amp;lt;?&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;$t=0;&lt;/p&gt;&lt;br /&gt;      &lt;p&gt;for ($x=0; $x&amp;lt;=100; $x++) &lt;br /&gt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;        $t=$t+$x;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;        echo &amp;quot;toplam : $t&amp;quot;;&lt;/p&gt;&lt;br /&gt;    &lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;    &lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;  &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-1090302070517908042?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/1090302070517908042/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=1090302070517908042' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1090302070517908042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1090302070517908042'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/07/t0-for-x0-x-x-ttx-echo-t.html' title='0 dan 100 e kadar toplama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-6977744217084034304</id><published>2008-03-15T15:10:00.001-07:00</published><updated>2008-10-13T13:10:24.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='ease php programı indir'/><title type='text'>ease php programı indir</title><content type='html'>http://sourceforge.net/project/downloading.php?group_id=14045&amp;use_mirror=kent&amp;filename=EasyPHP-2.0b1-setup.exe&amp;94163412&lt;a href="http://sourceforge.net/project/downloading.php?group_id=14045&amp;use_mirror=kent&amp;filename=EasyPHP-2.0b1-setup.exe&amp;94163412"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-6977744217084034304?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/6977744217084034304/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=6977744217084034304' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6977744217084034304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6977744217084034304'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/ease-php-program-indir.html' title='ease php programı indir'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-9114079326513712882</id><published>2008-03-15T15:06:00.001-07:00</published><updated>2008-10-13T13:10:24.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Süper-Global Diziler'/><title type='text'>Süper-Global Diziler</title><content type='html'>Süper-Global Diziler&lt;br /&gt;PHP 4.1.0 sürümünden sonra süper-global diziler ismiyle yeni bir kavram ortaya çıktı. Bu diziler daha önceki sürümlerde kullanılan ve ortam değişkenlerini içeren önceden tanımlanmış dizilerin düzenlenmiş halde olanlarıdır. &lt;br /&gt;PHP 4.1.0 sürümünden önce, bu ortam değerlerini kullanmamız için gereken diziler: &lt;br /&gt;&lt;br /&gt;POST metodundan gelen değerler için $HTTP_POST_VARS, &lt;br /&gt;GET metodundan gelen değerler için $HTTP_GET_VARS, &lt;br /&gt;SERVER ortam değerleri için $HTTP_SERVER_VARS, &lt;br /&gt;Oturum değerleri için $HTTP_SESSION_VARS, &lt;br /&gt;Çerez değerleri için $HTTP_COOKIE_VARS, &lt;br /&gt;Tüm ortam değerleri için $HTTP_ENV_VARS &lt;br /&gt;olarak kullanılıyordu. Bu sürümden sonra bunlar: &lt;br /&gt;$HTTP_POST_VARS yerine $_POST, &lt;br /&gt;$HTTP_GET_VARS yerine $_GET, &lt;br /&gt;$HTTP_SERVER_VARS yerine $_SERVER, &lt;br /&gt;$HTTP_SESSION_VARS yerine $_SESSION, &lt;br /&gt;$HTTP_COOKIE_VARS yerine $_COOKIE, &lt;br /&gt;$HTTP_ENV_VARS yerine ise $_ENV &lt;br /&gt;olarak değiştirildi. Bu isim değişimlerine ek olarak, yeni süper-global diziler global tanımlanmış halde geliyorlar. Kısaca betiklerde, bir fonksiyon içerisinde bu dizileri kullanmak istediğimizde bunları global olarak tanımlamamıza gerek kalmıyor. &lt;br /&gt;Aşağıdaki örneklerde PHP 4.1.0 sürümünden önce ve süper-global dizilerin kullanımları basitçe verilmiştir. &lt;br /&gt;&lt;br /&gt;Örnek 1: PHP 4.1.0 sürümünden önce kullanımı &lt;br /&gt;&lt;?php&lt;br /&gt;    function ornek() {&lt;br /&gt;        # $HTTP_POST_VARS dizisinden değerleri almak&lt;br /&gt;        # için global olarak tanımlamamız gerekiyor.&lt;br /&gt;        global $HTTP_POST_VARS;&lt;br /&gt;&lt;br /&gt;        echo $HTTP_POST_VARS['test'];&lt;br /&gt;    }&lt;br /&gt;?&gt; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Örnek 2: PHP 4.1.0 sürümünden sonra kullanımı (süper-global diziler) &lt;br /&gt;&lt;?php&lt;br /&gt;    function ornek() {&lt;br /&gt;        # $_POST dizisini global olarak tanımlamamıza&lt;br /&gt;        # ihtiyaç duyulmuyor.&lt;br /&gt;&lt;br /&gt;        echo $_POST['test'];&lt;br /&gt;    }&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-9114079326513712882?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/9114079326513712882/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=9114079326513712882' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/9114079326513712882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/9114079326513712882'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/sper-global-diziler.html' title='Süper-Global Diziler'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-8049634802319102007</id><published>2008-03-15T14:50:00.001-07:00</published><updated>2008-10-13T13:10:24.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP ile Neler Yapılabilir?'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>PHP ile Neler Yapılabilir?</title><content type='html'>PHP ile Neler Yapılabilir?&lt;br /&gt;Diğer sunucu-taraflı betik dilleri gibi PHP ile dinamik web sayfaları oluşturulabilir. Yazım kuralları çok basit ve anlaşılabilir olan bu dil ve eklentileri ile kısaca; &lt;br /&gt;veritabanı bağlantılı uygulamalar &lt;br /&gt;dinamik olarak oluşan grafikler &lt;br /&gt;kullanıcıya, tarayıcıya ve tarihe göre özel durumlar veya içerikler &lt;br /&gt;anketler &lt;br /&gt;tartışma forumları &lt;br /&gt;elektronik ticaret uygulamaları &lt;br /&gt;web tabanlı e-posta uygulamaları &lt;br /&gt;XML verilerini okuma ve oluşturma &lt;br /&gt;gibi işlemler yapan betikler kısa sürede yazılabilir. Ayrıca web uygulamaları dışında PHP ile kabuk betikleri yazılarak komut satırı işlemleri de yapılabilir. Daha çok UNIX işletim sistemleri üzerinde kullanılan kabul betiklerini yazma amacı ile PHP dili yaygın bir şekilde kullanılmamaktadır. Buna rağmen PHP geliştiricileri tarafından PHP-CLI arabirimi (kabuk betiklerini komut satırından çalıştıran ve yorumluyan arabirim) her yeni sürümde daha da güçlendirimektedir ve geliştirilmektedir. &lt;br /&gt;PHP dilinin kullanım alanlarından biri olan PHP-GTK arabirimi (eklentisi) ile GTK (The GIMP Toolkit) tabanlı grafikli kullanıcı arayüzleri de oluşturulabilmektedir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-8049634802319102007?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/8049634802319102007/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=8049634802319102007' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8049634802319102007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8049634802319102007'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-ile-neler-yaplabilir.html' title='PHP ile Neler Yapılabilir?'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-6419390883856880212</id><published>2008-03-15T14:45:00.001-07:00</published><updated>2008-10-13T13:10:24.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP Nedir?'/><title type='text'>PHP Nedir?</title><content type='html'>1. PHP Nedir?&lt;br /&gt;PHP sunucu-taraflı, çarpaz-düzlem ve HTML içine gömülebilir bir betik dilidir. Genel yapı ve yazılım kuralları yönünden C ve Perl dillerine çok yakın bir dildir. Rasmus Lerdorf tarafından hazırlanan bu dil, kendi web sitesine bağlı olan kişilerin takibini yapılması isteği ile ortaya çıktı. Rasmus Lerdorf bu dile ilk başta "Personal Home Page" adını koydu (çünkü kendi kişisel web sayfası üzerinde kullanmıştı). Şu anda ise PHP sözcüğü, "PHP: Hypertext Preprocessor" sözcüklerinin baş harflerinden oluşan kısaltmayla tanımlanmaktadır. &lt;br /&gt;Rasmus Lerdorf PHP dilini kaynak kodu açık bir halde 1995 senesinde açık-kaynak camiasına kazandırdı. 1995 senesinden bu yana kıllanımı gün geçtikçe yaygınlaşan PHP, şu anda yaklaşık 10.000.000 web sunucusu tarafından kullanmaktadır (Kasım 2003, Kaynak: Netcraft). &lt;br /&gt;&lt;br /&gt;Sunucu-taraflı: PHP betikleri sunucu tarafından çalıştırılır (JavaScript dilinin tam tersine) ve çıktısı tarayıcınıza gönderilir. &lt;br /&gt;Çapraz-düzlem: PHP, birçok işletim sistemi üzerinde ve web sunucusu yazılımlarına adapte olarak çalışabilmektedir (örneğin, Microsoft Windows üzerinde IIS web sunucusu ile birlikte veya Unix işletim sistemleri üzerinde Apache web sunucus ile birlikte). &lt;br /&gt;HTML içine gömülebilir: PHP ifadeleri ve fonksiyonları HTML dökümanları içine yazılabilir ve çalıştırılabilir. Böylelikle dinamik web sayfaları oluşturulabilir. Web sunucusu yazılımı web sayfası içerisinde PHP diline ait ifadeleri gördüğünde, bunları yorumlayıp, çıktısını HTML ifadeleri yazılı yerlerin arasına yerleştirir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-6419390883856880212?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/6419390883856880212/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=6419390883856880212' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6419390883856880212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6419390883856880212'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-nedir.html' title='PHP Nedir?'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-41696563291096920</id><published>2008-03-08T04:42:00.003-08:00</published><updated>2008-10-13T13:10:24.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP&apos;de Güvenlik'/><title type='text'>PHP'de Güvenlik phpprogramlama</title><content type='html'>PHP'de Güvenlik&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Günümüzde Internet'te ne kadar güvenlik önlemi alınsa, yeridir. Sadece iyi niyetli olmayan kişilere karşı değil, fakat daha çok ne yaptığını tam bilmeyen Web ziyaretçilerini de düşünmek ve PHP programlarınızın güvenliğini arttırmak zorundasınız.&lt;br /&gt;Internet’te iyiniyetli olunmaz. Acı, ama gerçek. Internet’e içine zararlı kod yerleştirilebilecek bir Form koyarsanız, emin olmalısınız ki, birisi bu zararlı kodu koyacaktır. Sadece kötüniyetli kişilerin size söz gelimi elektronik posta adresi veya mesaj görünümünde zararlı kod göndermesini önlemek için değil, fakat normal kullanıcıların yapabilecekleri sıradan hataları yakalamak ve düzeltmek için de önlem almanız gerekir.&lt;br /&gt;Server güvenliği son derece önemli bir konu olmakla birlikte, bunu sağlamak genellikle tasarımcının sorumluluğunda değildir. Bununla birlikte sayfalarımızın ve veritabanımızın güvenliği ve Web uygulamalarımızın doğru işlemesi bizden sorulur.&lt;br /&gt;Bir form ile sizin sayfalarınıza veya veritabanınıza ne gibi zararlar verilebilir? Bu zararların başında, en hafifinden sizin sayfanızı başka yere yönlendirmek gelebilir. Kötüniyetin ölçüsü arttıkça bu, Server programının açıklarından yararlanarak, Server’daki dosyaları değiştirmeye veya tahrip etmeye kadar gidebilir. Normal ziyaretçi hataları arasında ise sözgelimi elektronik posta adresini iki @ işaretiyle yazmaktan tutun, bu işareti koymamaya, metktubun gideceği bilgisayarın adresini eksik yazmaya kadar uzanan bir dizi yanlışlık bulunabilir. Ziyaretçiler formu eksik doldurabilirler. Bu gibi eksiklikler ve yanlışlıkları daha sonra düzeltmek zaman kaybına yol açar. Kimi zaman eksik doldurulmuş bir Form, bu bilgilerin ulaştırılacağı programda hataya yol açabilir. Bu sebeple, özellikle Form yoluyla alınan bilgilerin denetimi ve doğrulatılması şarttır.&lt;br /&gt;Bir Form’un içerdiği bilgilerin denetimi ve doğrulanması iki yerde yapılabilir: istemci-tarafında, sunucu-tarafında. İstemci tarafında, yani ziyaretçiye göndereceğimiz HTML sayfasının içinde yer alan kodlarla yapacağımız denetim-doğrulama, hızlı çalışır; ve ziyaretçi ile sunucu arasında iletişim kurulmadan önce yapılır; böylece ziyaretçinin sözgelimi gönder düğmesini tıkladıktan sonra çok beklemesi gerekmez. Ne var ki bu yöntemde denetim-doğrulama kodu ziyaretçiye gönderilmiştir; kötü niyetli kişi neyi denetlediğinizi görecek ve isterse bu denetimi kaldıracak size zararlı kod parçacıkları gönderebilecektir. Denetimin sunucu tarafında yapılması, belki biraz daha fazla zaman harcamayı gerektirir, fakat güvenlik açısından daha etkili olabilir. Elektronik posta adresi doğırulama ve mesajların içinden zararlı kodları ayıklama yöntemlerinden Düzenli İfadeler bölümünden söz ettik. Orada ele aladığımız örnek kodlar geliştirilerek ziyaretçilerin girdilerinde daha sıkı aramalar yapılabilir.&lt;br /&gt;Parola ve SSL&lt;br /&gt;PHP gibi, kendisi ziyaretçinin Browser'ına gönderilmeyen bir dille, sitelerimi parola ile korumak mümkün ve kolaydır. Sitenize sadece sizin vereceğiniz parola ile girilmesini istiyorsanız, ana sayfanın şöyle başlaması yeter:&lt;br /&gt;&lt;?php&lt;br /&gt;if (!isset($parola) || $parola != "gizli_kelime") {&lt;br /&gt;?&gt;&lt;br /&gt;&lt;FORM ACTION="parola_igir.php" METHOD="POST"&gt;&lt;br /&gt;Parola: &lt;INPUT NAME="parola" TYPE"password"&gt;&lt;BR&gt;&lt;br /&gt;&lt;INPUT TYPE="submit"&gt;&lt;br /&gt;&lt;/FORM&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;// Buraya gizlenen sayga girecek&lt;br /&gt;?&gt;&lt;br /&gt;PHP ayrıca mevcut hemen hemen bütün sunucu kullanıcı kimlik doğrulama protokolleri ile uyumludur; ve sunucu yönetimi ile ilişki kurularak daha karmaşık kullanıcı kimlik doğrulama yöntemleri uygulanabilir. Bu yöntemler arasında Secure Socket Layer (SSL) yöntemlerini, ve OpenSSL ve ModSSL teknikleri sayabiliriz.&lt;br /&gt;Tırnak İşareti Sorunu&lt;br /&gt;PHP4.0'ü tasarlayanlar, özellikle zararlı kodları gizlemekte kötüniyetli kişilerin yararlandığı tek ve çift tırnak işaretlerinin sisteme zarar vermesini önlemek amacıyla, ziyaretçi girdilerindeki tırnak işaretlerinin otomatik olarak Escape karakteri ile zararsız hale getirilmesini sağlamış bulunuyorlar. Buna göre bir ziyaretçi bir forma söz gelimi "PHP'nin yararları" yazacak olursa bu "PHP\'nin Yararları" haline dönecektir. Kimi zaman çirkin görünse de bu, bir sitenin güvenliği için önemli bir kazançtır.&lt;br /&gt;Bu sistemin işleyebilymesi için sunucu yönetiminin PHP kurulumu sırasında php.ini dosyasında gereken düzenlemeyi yapmış olması gerekir. Bunun yapılmadığı durumlarda, programcı olarak siz, PHP'nin değişkenlerin değerlerinde gerektiğinde  tersbölü işareti uygulamasını, bu değişkeni addslashes() fonksiyonu ile birlikte kullanarak çözümleyebilirsiniz. Örnek:&lt;br /&gt;$yeni_degisken = addslashes($eski_degisken)&lt;br /&gt;Bu dizinin ikinci kitabında güvenlik konusuna daha geniş yer vereceğiz.&lt;br /&gt;PHP Kaynakları&lt;br /&gt;Güvenlik dahil, PHP konusunda başvurulacak kaynakların bir kısmı şöyle sıralanıyor. Ayrıca bu kitapçığın örnek kodları arasında, PHP Hosting Companies Search the Directory.htm adlı belgede çık sayıda kurum ve firmasın listesini bulabilirsiniz:&lt;br /&gt;http://www.php.net/FAQ.php&lt;br /&gt;http://www.php.net/manual/config-odbc.html&lt;br /&gt;http://www.techdevelopers.com&lt;br /&gt;http://www.lilali.net&lt;br /&gt;http://www.sqlcourse.com/&lt;br /&gt;ttp://www.apache.org/info/apache_users.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-41696563291096920?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/41696563291096920/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=41696563291096920' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/41696563291096920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/41696563291096920'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/phpde-gvenlik-phpprogramlama.html' title='PHP&apos;de Güvenlik phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-6353422620601107604</id><published>2008-03-08T04:42:00.001-08:00</published><updated>2008-10-13T13:10:24.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP ile Veritabanı'/><title type='text'>PHP ile Veritabanı phpprogramlama</title><content type='html'>&lt;strong&gt;PHP ile Veritabanı&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PHP’yi bir veritabanından veri çekecek, bunlarla HTML etiketlerinin içeriğini oluşturacak ve ziyaretçimizden alacağımız bilgileri bir veritabanına işleyecek işlemleri öğrenebilecek kadar biliyoruz artık. Bu kitapçığın baş tarafındaki kurma işlemlerini birlikte yaptıysak, şu anda PHP programlarını geliştirdiğiniz kişisel bilgisayardaki kişisel Web sunucusunda MySQL sürücüleriniz ve veritabanı yönetim programınız çalışıyor olmalı. Bir kere daha tekrar etmek gerekirse, PHP ile veritabanına dayanan sayfalar yapmak için mutlaka ve sadece MySQL sürücülerini kullanmak gerekmez. Bunun yerine sözgelimi Microsoft’un ODBC sürücülerini kullanabilirsiniz. Ancak Web sitenize evsahipliği yapan firmanın size ODBC desteği verip vermediğini öğrenmeniz gerekir. Aslında aynı şekilde, evsahibi firmanın MySQL desteği verip vermediğini de öğrenmek zorundasınız. (PHP ile MS-ODBC sürücülerini kullanabilmek için Andrew Stopford’un ASP Today sitesinde http://www.asptoday.com/articles/20000202.htm adresindeki yazısında daha geniş bilgi bulunmaktardır.)&lt;br /&gt;Web sitemizde, HTML sayfalarımızı ve PHP programlarımızı neden veriya dayalı hale getirmeliyiz? Bu sorunun cevabı, "Başka türlü elde edilemeyecek bir otomasyon, ziyaretçilerimizle gerçek anlamıyla etkili biralışveriş sağlamak için!" diye yanıtlayabiliriz. Yukarıda, bir PHP programının ziyaretçiden Frm ile alacağı bilgileri, yine kendisine gönderebileceğini ve bu bilgileri işleyebileceğini gördük. PHP programımızın bu bilgileri bir veritabanına işlediğini ve ziyaretçi bir başka sayfaya gitmek istediğinde o sayfanın içeriğinin, ziyaretçinin birkaç saniye önce yaptığı tercihlere göre belirlendiğini düşünün. Bir başka örnek, Web sitemizdeki sayfalarda yer alan unsurların güncelleştirilmesi için her güncelleştirmede çok sayıda programı yeniden yazmak veya sayfayı yeniden yapmak zorunluğu varsa, bu program ve sayfaların içeriklerini bir veritabanından alıyor olması halinde, sadece veritabanını güncelleştirmekle onlarca, belki de yüzlerce, HTLL ve PHP belgesini yeniden yazmış gibi olabiliriz.&lt;br /&gt;Bu bölümde önce bir örnek veritabanı dosyası hazırlayacağız; daha sonra bunun içindeki verileri PHP programı ile sayfalarımıza katacağız. Bu dizinin ikinci kitabında Unix/Linux sistemlerinde veritabanı uygulamaları üzerinde daha geniş duracağız. Burada Windıows sisteminde bir MySQL uygulamasını ele almakla yetineceğiz.&lt;br /&gt;MySQL Veritabanı&lt;br /&gt;Gerçi bu kitapçığın konusu kendisi başlı başına bir dil olan SQL değil, ama burada sadece MySQL programı ile veritabanı oluşturmakla kalmayalım, bir anlamda SQL diline de çok kısa bir giriş yapalım. SQL çook geniş bir dildir. Burada yapabileceğimiz giriş ancak ilk alıştırmamaızı  yapmamıza yetebilir. &lt;br /&gt;SQL, (Structured Query Language, Yapısal Sorgu Dili) veritabanı endüstrisinin standart dilidir. Fakat HTML konusunda farklı firmaların sadece kendi Browserlarının tanıdığı türden etiketler geliştirmeleri gibi, SQL alanında da farklı firmaların ekleri ve dilde yaptıkları değişiklikler vardır.&lt;br /&gt;MySQL, teknik tabiriyle sunucuda daemon olarak çalışır ve arzu eden programa, bildireceği (ve erişim hakkı bulunan) veritabanı dosyasından veri çekerek, sunar. Bir veritabanında farklı sayıda tablolar olabilir. Bir veritabanı dosyasında yer alan tablolarda, sütunlar ve satırlar vardır: bunların kesiştikleri yerlere biz verilerimizi yazarız. Bir SQL veritabanı dosyasında her bir kutunun ne tür veri kabul edeceği önceden belirlenir; dolayısıyla türü sayı olan verinin yazılacağı kutuya, alfanümerik değer yazılmaz. MySQL, sayısal verilerin türünü INT, belirli bir sınıra kadar değişen sayıda karakterden oluşacak verilerin türünü VARCHAR komutuyla belirler.&lt;br /&gt;//////////////////KUTU////////////////&lt;br /&gt;mySQL veri türleri&lt;br /&gt;MySQL'de bir çok veri türü oluşturulabilir. Ancak Web programları açısından önemli olan bir kaçı ve özellikleri şöyle saralanabilir:&lt;br /&gt;INT	Tamsayı: -2147483648'den 2147483647 kadar değişen diziye "signed" (işaretli), 0'dan 4294967295'e kadar değişenine "unsigned" (işaretsiz) denir.&lt;br /&gt;VARCHAR(n)	n sayısını geçmemek şartıyla değişen boyutta karakter olabilir.&lt;br /&gt;CHAR(n)	Kesinlikle n sayısı kadar karakter olabilir.&lt;br /&gt;TEXT	En fazla 65535(2^16-1) karakter alabilen metin alanı.&lt;br /&gt;MEDIUMTEXT	En fazla 16777215(2^24-1) karakter alabilen metin alanı.&lt;br /&gt;DATE	1000-01-01'den 9999-12-31'e kadar değişebilen tarih alanı.&lt;br /&gt;TIMESTAMP	1 Ocak 1970'den 18 Ocak 2038'e kadar olan ve Yıl+Ay+Gün+Saat+Dakika+Saniye biçimindeki zaman bilgisi.&lt;br /&gt;/////////////////KUTU BİTTİ//////////////&lt;br /&gt;MySQL'de bir tablo oluşturmak için gerekli CREATE TABLE komutu şöyle kullanılır:&lt;br /&gt;CREATE TABLE uyeler (adi VARCHAR(30), soyadi VARCHAR(30), üye_no INT ) ;&lt;br /&gt;Bu komutla, "uyeler" isimli üç sütunlu bir tablo oluşturulur: birinci ve ikinci sütunlarda en fazla 30, karakterlik değişen boyutta alfanümerik değerler yer alırken, üçüncü sütunda sadece tam sayı olan değerler bulunabilir. Bu komutla oluşturulan tabloya INSERT  INTO komutuyla veri girebilirsiniz:&lt;br /&gt;INSERT  INTO uyeler (adi, soyadi, uye_no) VALUES ('Muharrem','Taç','1234')&lt;br /&gt;Bir tablonun oluşturulması ile içine veri yerleştirilmesi komutları ayrı ayrı zamanlarda, ayrı işlemler olarak yapılabileceği gibi, toplu bir metin halinde, otomatik olarak da yapılabilir. &lt;br /&gt;MySQL veritabanından bilgi edinmek için SELECT komutunu kullanırız:&lt;br /&gt;SELECT * FROM uyeler ;&lt;br /&gt;Bu, MySQL'e, uyeler adlı tablodaki bütün değerlerin okunmasını bildirir. Buradaki "*" işareti, "bütün sütunlardaki bütün değerler" anlamına gelir. Diyelim ki yukardıda oluşturduğumuz tablonun sadece "adi" ve "soyardi" sütunlarındaki bilgileri almak isteseydik, bu komutu şöyle yazacaktık:&lt;br /&gt;SELECT adi soyadi FROM uyeler ;&lt;br /&gt;Bir veritabanındaki bilgilerin yenileriyle değiştirilmesini, yani veritabanı dosyasının güncelleştirilmesini UPDATE komutu sağlar. Bu komutu kullanarak veritabanımızdaki bazı kutucukların içindeki bilgileri değiştirebiliriz. Veritabanı dosyalarını güncelleştirme zorunluğu bulunması ise bize veritabanı tasarımının çok önemli olduğunu gösterir. Örneğin:&lt;br /&gt;UPDATE uyeler SET adi = "Şahika" ;&lt;br /&gt;Bu komut, veritabanındaki bütün satırlarda, birinci sütundaki değerleri "Şahika" olarak değiştirmekle sonuçlanırdı. Amacımız bu ise, sorun değil; ancak çoğu kez MySQL'e hangi satırda (veritabanı tekniğindeki terimle söylersek, hangi kayıtlarda) değişiklik yapılacağını daha ayrıntılı sölememiz gerekir. Veritabanı dosyamızı oluştururken, her kaydın diğer kayıtlarda olmayan (unique) bir sütun (bunu da veritabanı tekniğindeki terimle söylersek. alan) bulunmalıdır, ki MySQL'e yapılacak değişikliğin tam yerini söyleyelim. Örneğin&lt;br /&gt;UPDATE uyeler SET adi = "Şahika" WHERE uye_no = 1234;&lt;br /&gt;MySQL bu komutu alınca sadece üye numarası 1234 olan kişinin (yani uye_no alanındaki değer 1234 olan kaydın) "adi" alanındaki değeri silecek ve yerine verdiğimiz yeni değeri yazacaktır. Böyle birincil alanı bulunan, iyi düşünülmüş bir veritabanından seçim yapmak da kolay olur. Örneğin:&lt;br /&gt;SELECT adi soyadi FROM uyeler WHERE uye_no &gt;= 123;&lt;br /&gt;deyimi ile tablomuzda bulunan kayıtlardan sadece üye numarası 123'den büyük olanları seçebiliriz.&lt;br /&gt;Bir MySQL veritabanındaki kaydı silmek için DELETE komutunu kullanırız:&lt;br /&gt;DELETE FROM uyeler WHERE uye_no = 1234;&lt;br /&gt;Vveritabanında sadece bir kayıtta üye numarası 1234 olacağı için bu komutla sadece bir satır silinecektir. Bu komutu, diyelim ki üyelik kaydını yenilememiş kişilerin tümünü silmek için de kullanabiliriz. Veritabanımızda üyelik kaydının yenilendme tarihini gösteren bir alan bulunduğunu varsayalım:&lt;br /&gt;DELETE FROM uyeler WHERE yenileme_tarihi &lt; 2000-01-31;&lt;br /&gt;Bu komutla, üyeliğini yenileme tarihi 31 Ocak 2000'den eski olan bütün üyelerimizin kaydını veritabanından silmiş oluruz.&lt;br /&gt;Bu komutların MySQL'in DOS komut işlemcisi ile komutsatırından yapılacağını belirtmemiz gerekir. Bunu yapabilmek için MySQL Server'ın Windows'da çalıştırılması gerekir. MySQL'in paylaşım sürümünü kullanmak için Windows sistemlerinde mysqld-shareware.exe programını çalıştırmanız gerekir. Bunun için DOS komut istemcisi penceresinde "C:/mysql/bin" dizinine giderek, şu komutu vermemiz yeter:&lt;br /&gt;mysqld-shareware&lt;br /&gt;MySQL sürücülerinizin kişisel Web sunucusunda başarıyla çalıştığına, kitapçığın  baş tarafında belirttiğimiz küçük alıştırmayı yaparak emin olduktan sonra gerçek bir veritabanı dosyası yazabiliriz.&lt;br /&gt;Yukarıda gördüğümüz komutları komut istemci satırından tek tek verebileceğimiz gibi, bir düzyazı dosyasında toplayıp, MySQL programına da otomatik olarak yaptırabiliriz.  Bu dosyaya, içindeki verileri alıp veritabanına boca edeceğimiz için, Dump dosyası denir. &lt;br /&gt;Aşağıdaki metni MySQL programının kurulu olduğu dizindeki /bin/ alt-dizinine (muhtemelen c:\mysql\bin) veri.dump adıyla kaydedin (Notpad kullanıyorsanız, dosya adına .txt eklendiğine dikkat edin!)&lt;br /&gt;CREATE TABLE calisanlar ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), adi VARCHAR(20), soyadi VARCHAR(20), adres VARCHAR(60), pozisyon VARCHAR(60));&lt;br /&gt;INSERT INTO calisanlar VALUES (1 , 'Sahika' ,'Tabak' ,'PCLife Dergisi, Istanbul' , 'Yazar');&lt;br /&gt;INSERT INTO calisanlar VALUES (2 , 'Muharrem' , 'Tac' , 'Işık Kultur Merkezi, Bursa' , 'Yonetmen');&lt;br /&gt;Bu metnin sadece üç satır olmasına, örneğin Notpad'de Düzen menüsünde Sözcük Kaydır maddesinin işaretsiz olmasına dikkat edin. Daha sonra yine DOS komut istemcisi penceresinde MySQL programının dizininde /bin alt-dizinine gidin ve şu komutu yazın:&lt;br /&gt;mysqladmin -u root create veri&lt;br /&gt;MySQL veri adlı veritabanının oluuştuğunu bildirecektir. Şimdi içi boş bir veri dosyamız oldu. Yazdığımız dump dosyasındaki bilgileri veritabanı dosyasına işletmek işini MySQL yapacakatır. Bunu, şu komutla yapabiliriz:&lt;br /&gt;mysql –u root veri &lt; veri.dump&lt;br /&gt;İşlerin yolunda gidip gitmediğini c:\mysql\data dizininde veri adlı bir klasör oluşturulduğunu kontrol ederek anlayabiliriz. Bu klasörün içinde calisanlar.frm, calisanlar.isd ve calisanlar.ism adında dosyalar bulunması gerekir. &lt;br /&gt;PHP-MySQL İlişkisi&lt;br /&gt;Böylece, MySQL ile bir veritabanı dosyası oluşturma işlemi bitmiş oldu. bir PHP programı yazarak bu veritabanındaki kayıtları okutabiliriz. Bunu yapmadan önce yine hızlı şekilde PHP-MySQL ilişkisinini sağlayan fonksiyonlara gözatalım. &lt;br /&gt;PHP programlarımızda veritabanından yararlanabilmek için programın önce Web sunucusu aracılığıyla veritabanı dosyası ile bağlantı kurması gerekir. Başka bir deyişle, PHP programının veri ile arasında bir yol açması gerekir. MySQL açısından ise bu bağlantı, veri sunucusunda yeni bir oturum açılması anlamına gelir. İki program arasındaki bu ilişkiyi PHP'nin mysql_connect() fonksiyonu yapar. Bu fonksiyonun alabileceği üç parametre vardır:&lt;br /&gt;$veri_yolu = mysql_connect ("localhost" , "root" , "parola" );&lt;br /&gt;Burada "localhost" yerine MySQL programının parçası olarak çalıştığı sunucunun adı yazılır. "root" bu MySQL sunucusunda açılacak oturumun kimin adına açılacağını belirter. "root" kelimesi, sunucunun yönetici olarak oturum açılacağı anlamına gelir: "parola" kelimesinin yerine de MySQL'i kurarken belirlediğimiz bir kullanıcı parolası varsa, onu yazarız. Bu komutta yer alan $veri_yolu değişkeni, açılacak veri yolunun, PHP ile MySQL veritabanı sunucusu arasındaki bağın tanıtıcı işareti olacaktır. Bu bağlantı kurulduktan sonra, açtığımız veri yolundan gelecek bilgiler ve veritabanına gidecek bilgiler bu değişken aracılığıyla gerçekleşecektir. Veri sunucusu ile veri yolu bağlantısı kurulursa, bu değişken değer tutar hale gelir; bağlantı kurulamazsa bu değişken boş kalır. mysql_connect() fonksiyonunun başarılı olup olmadığını bu değişkenin durumunu sınayarak anlayabiliriz. Örneğin:&lt;br /&gt;$veri_yolu =mysql_connect("kara-murat", "root");&lt;br /&gt;if ( ! $veri_yolu) die ("MySQL ile veri bağlantısı kurulamıyor!);&lt;br /&gt;Burada veri sunucusunun bulunduğu Web sunucusunun adının "kara-murat" olduğuna, ve ooturumun "root" yetkileriyle açıldığına dikkat edin. İkinci satırdaki if deyimi, $veri_yolu değişkeninin değer içerip içermediğine bakıyor ve değişkende bir değer yoksa, bağlantı kurma girişini durdurarak, ziyaretçiye hata mesajı gönderiyor.&lt;br /&gt;Bağlantı başarıyla kurulduktan sonra PHP programı, bu yoldan, veritabanı sunucusuna, hangi veritabanı dosyasından yararlanmak istediğini bildirmelidir. Buna veritabanı dosyası seçme işlemi denir ve mysql_select_db() fonksiyonu ile yapılır:&lt;br /&gt;mysql_select_db( "veritabanın_adı" , $veri_yolu ) or die ("Veritabanı açılamıyor!".mysql_error() );&lt;br /&gt;Bu fonksiyonun başarıyla icra edilip edilmediği fonksiyondan dönen değerin true/doğru veya false/yanlış olmasından anlarız. Bu değer false ise bu deyimin die() bölümü icra edilecek ve Browser penceresine veritabanının açılamadığı mesajıyla birlikte MySQL'in hata mesajı da gönderilecektir. PHP'nin MySQL veritabanını seçememesi çoğu zaman kullanıcı yetkilerinin Internet ziyaretçilerini kapsayacak şekimde düzenlenmemiş olmasından kaynaklanır. Bu durum gerçek Web sunucusunda ortaya çıkarsa, Web sunucusu yönetimine başvurmak gerekir.&lt;br /&gt;Şimdi bu anlattıklarımızı biraraya getiren kolay bir PHP programıyla biraz önce oluşturduğumuz "veri" adlı veritabanından bir birinci kişiye ait verileri "okutarak, HTML sayfamızda kullanalım. Aşağıdaki programı, veri_01.php adıyla kaydedelim: &lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;TITLE&gt;PHP ile Veri Örnegi&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;$veri_yolu = mysql_connect("kara-murat", "root");&lt;br /&gt;if ( ! $veri_yolu ) die ("MySQL ile veri bağlantısı kurulamıyor!");&lt;br /&gt;mysql_select_db("veri" , $veri_yolu) &lt;br /&gt;	or die ("Veritabanına ulaşılamıyor!" . mysql_error() );&lt;br /&gt;$sonuc = mysql_query("SELECT * FROM calisanlar",$veri_yolu);&lt;br /&gt;	printf("Adı: %s&lt;br&gt;\n", mysql_result($sonuc,0,"adi"));&lt;br /&gt;	printf("Soyadı: %s&lt;br&gt;\n", mysql_result($sonuc,0,"soyadi"));&lt;br /&gt;	printf("Adresi: %s&lt;br&gt;\n", mysql_result($sonuc,0,"adres"));&lt;br /&gt;	printf("Görevi: %s&lt;br&gt;\n", mysql_result($sonuc,0,"pozisyon"));&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Burada, mysql_connect() fonksiyonu ile "kara-murat" isimli sunucuda root adına MySQL sunucu ile bağ kurduktan sonra mysql_select_db() fonksiyonu ile bu bağı kullanarak veri isimli veritabanından veri çekeceğimizi bildiriyoruz. Daha sonra mysql_query() fonksiyonu ile bu veritabanındaki “calisanlar” isimli tablodan “herşeyi” seçiyoruz ve seçilenleri $sonuc dizi-değişkeninde topluyoruz. $sonuc değişkenin değerlerini görüntülemek için PHP'nin özel bir fonksiyonu olan mysql_result() fonksiyonu kullanıyoruz. Burada metin biçimlendirmekte yararlandığımız printf() fonksiyonunu daha önce tanımıştık.&lt;br /&gt;&lt;php00031.tif&gt;&lt;br /&gt;mysql_query() fonksiyonu, PHP'nin SQL dilini kullahnarak veritabanı işlemleri yapmasını sağlayan başlıca aracıdır. Yukarıda kısaca değindiğimiz bütün SQL komutlarıyla yazacağımız bütün "query" deyimlerini bu fonksiyon ile icra ettireceğiz. mysql_result() ise SQL değil, Data Manipulation Language (DML) denen başka bir veri-biçimlendirme dilinin inceliklerinden yararlanmamızı sağlar. Burada $sonuç değişkeninde veritabanı kayıt biçiminde tutulan verileri PHP'nin ve dolayısıyla HTML'in anlayacağı biçime çeviren bu fonksiyondur.&lt;br /&gt;Şimdi bu programı biraz geliştirilim ve daha önce kendi kendine bilgi veren Form örneğimizi buraya uygulayalım; ancak bu kez, ziyaretçimizin vereceği bilgileri veritabanına ekleyelim; ve kendi adının veritabanına eklendiğini sayfadaki tabloyu güncelleyerek bildirelim. Önce şu programı, veri_02.php adıyla kaydedelim:&lt;br /&gt;&lt;?php&lt;br /&gt;// Form doldurulduktan sonra program buradan başlıyor&lt;br /&gt;if ( isset ( $HTTP_POST_VARS )) {&lt;br /&gt;$veri_yolu = mysql_connect("server", "root");&lt;br /&gt;if ( ! $veri_yolu ) die ("MySQL ile veri bağlantısı kurulamıyor!");&lt;br /&gt;mysql_select_db("veri" , $veri_yolu) or die ("Veritabanına ulaşılamıyor!" . mysql_error() );&lt;br /&gt;$ekle = mysql_query("INSERT INTO calisanlar ( adi , soyadi , adres , pozisyon ) VALUES ('$adi', '$soyadi', '$adres', '$pozisyon' )", $veri_yolu );&lt;br /&gt;echo ("&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;HEAD&gt;&lt;br /&gt;	&lt;TITLE&gt;PHP'de Veritabanı&lt;/TITLE&gt;&lt;br /&gt;	&lt;meta http-equiv='content-type' content='text/html; charset=ISO-8859-9'&gt;&lt;br /&gt;	&lt;meta http-equiv='Content-Type' content='text/html; charset=windows-1254'&gt;&lt;br /&gt;	");&lt;br /&gt;$sonuc = mysql_query("SELECT * FROM calisanlar", $veri_yolu);&lt;br /&gt;echo ("&lt;br /&gt;	&lt;TABLE&gt;&lt;br /&gt;	&lt;TR&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Uzmanın Adı&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Çalıştığı Yer&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Görevi&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;		&lt;/TR&gt;&lt;br /&gt;	\n");&lt;br /&gt;while ($satir = mysql_fetch_row($sonuc)) {&lt;br /&gt;	printf("&lt;TR&gt;&lt;TD&gt;%s %s&lt;/TD&gt;&lt;TD&gt;%s&lt;/TD&gt;&lt;/TD&gt;&lt;TD&gt;%s&lt;/TD&gt;&lt;/TR&gt;\n", $satir[1], $satir[2], $satir[3], $satir[4]);&lt;br /&gt;	}&lt;br /&gt;echo ("&lt;br /&gt;	&lt;/TABLE&gt;\n&lt;br /&gt;	&lt;p&gt;&lt;B&gt;Teşekkür ederiz.&lt;/B&gt;&lt;/P&gt;&lt;br /&gt;	&lt;A HREF='index.php'&gt;Ana sayfaya dönmek için tıklayınız&lt;/A&gt;&lt;br /&gt;	");&lt;br /&gt;}&lt;br /&gt;// program ilk kez açılıyorsa buradan başlayacak&lt;br /&gt;else {&lt;br /&gt;echo ("&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;HEAD&gt;&lt;br /&gt;	&lt;TITLE&gt;PHP'de Veritabanı&lt;/TITLE&gt;&lt;br /&gt;	&lt;meta http-equiv='content-type' content='text/html; charset=ISO-8859-9'&gt;&lt;br /&gt;	&lt;meta http-equiv='Content-Type' content='text/html; charset=windows-1254'&gt;&lt;br /&gt;	&lt;/HEAD&gt;&lt;br /&gt;	&lt;BODY&gt;&lt;br /&gt;	&lt;p&gt;&lt;B&gt;Mevcut Üyelerimiz&lt;/B&gt;&lt;/P&gt;&lt;br /&gt;	");&lt;br /&gt;$veri_yolu = mysql_connect("server", "root");&lt;br /&gt;mysql_select_db("veri", $veri_yolu);&lt;br /&gt;$sonuc = mysql_query("SELECT * FROM calisanlar", $veri_yolu);&lt;br /&gt;echo ("&lt;TABLE&gt;&lt;br /&gt;	&lt;TR&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Uzmanın Adı&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Çalıştığı Yer&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;		&lt;TD&gt;&lt;B&gt;Görevi&lt;/B&gt;&lt;/TD&gt;&lt;br /&gt;	&lt;/TR&gt;&lt;br /&gt;	\n");&lt;br /&gt;while ($satir = mysql_fetch_row($sonuc)) {&lt;br /&gt;	printf("&lt;TR&gt;&lt;TD&gt;%s %s&lt;/TD&gt;&lt;TD&gt;%s&lt;/TD&gt;&lt;/TD&gt;&lt;TD&gt;%s&lt;/TD&gt;&lt;/TR&gt;\n", $satir[1], $satir[2], $satir[3], $satir[4]);&lt;br /&gt;	}&lt;br /&gt;echo ("&lt;br /&gt;	&lt;/TABLE&gt;\n&lt;br /&gt;	&lt;p&gt;&lt;/p&gt;&lt;br /&gt;	&lt;p&gt;&lt;B&gt;Siz de aramıza katılmak ister misiniz?&lt;/B&gt;&lt;/P&gt;&lt;br /&gt;	&lt;FORM ACTION='$PHP_SELF' METHOD='POST'&gt;&lt;br /&gt;	&lt;TABLE&gt;&lt;br /&gt;	&lt;TR&gt;&lt;TD&gt;Adınız: &lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE='TEXT' NAME='adi'&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;	&lt;TR&gt;&lt;TD&gt;Soyadınız: &lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE='TEXT' NAME='soyadi'&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;	&lt;TR&gt;&lt;TD&gt;İş Yeriniz: &lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE='TEXT' NAME='adres'&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;	&lt;TR&gt;&lt;TDALIGN='left'&gt;Göreviniz: &lt;/TD&gt;&lt;TD&gt;&lt;INPUT TYPE='TEXT' NAME='pozisyon'&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;	&lt;TR&gt;&lt;TD ALIGN='center'&gt;&lt;INPUT TYPE='SUBMIT' VALUE='Defteri imzala!'&gt;&lt;/TD&gt;&lt;TD ALIGN='center'&gt;&lt;INPUT TYPE='RESET' VALUE='Tümünü sil!'&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;	&lt;/TABLE&gt;&lt;br /&gt;	&lt;/FORM&gt;&lt;br /&gt;	&lt;/BODY&gt;&lt;br /&gt;	&lt;/HTML&gt;&lt;br /&gt;	");&lt;br /&gt;}&lt;br /&gt;?&gt; &lt;br /&gt;Program, ilk kez çalıştığında, çalışmaya ikinci yarısındaki else() deyiminden itibaren icra ediliyor;  ziyaretçilerimize mevcut üyelerimizin listesini veriyor ve üye olmak isteyip istemediğini soruyor. Arzu edenin üye olabilmesi için gerekli Form'u da sunuyoruz.&lt;br /&gt;&lt;php00032.tif&gt;&lt;br /&gt;Programın her iki bölümünde de veri okuyan ve bunu görüntüleyen, yani programın canalıcı noktası, mysql_fetch_row() fonksiyonudur. PHP'nin DML araçlarından olan bu fonksiyonun marifeti, bir veritabanından elde edilen sonucu satır-satır okumasıdır. Nitekim, burada bu fonksiyondan dönen değeri $satir adını verdiğimiz dizi-değişkene yazıyoruz ve sonra printf() bu dizinin elemanlarını sırayla Browser penceresine gönderiyor. (Burada olduğu gibi $satır değişkenin içinde kaç kaç sütun olduğunu bildiğimiz durumlarda printf() fonksiyonunu döngüsüz kullanmak mümkündür. Ancak veritabanının sütun sayısını bilmiyorsak bunu sözgelimi count($satir) yoluyla öğrenip, bu bilgiyle bir for döngüsü kurmak yerinde olur. &lt;br /&gt;Programın iki bölümü arasındaki tek fark, $HTTP_POST_VARS dizi-değişkeninin bir değer tutması halinde (yani ziyaretçi sayfayı açtığında karşısına çıkan Form'u doldurduğu ve gönderdiği zaman) çalışan birinci bölümünde, mysql_query() fonksiyonunun bu kez veritabanı dosyasına ziyaretçinin verdiği bilgileri işlemek üzere farklı bir SQL deyimi içermesidir. Nasıl yazıldığını daha önce ele aldığımız bu fonksiyon "calisanlar" tablosundaki dört alana elimizdeki dört değişkenin değerlerini SQL'in INSERT komutuyla ekliyor.&lt;br /&gt;&lt;php00032.tif&gt;&lt;br /&gt;PHP'nin MySQL ile yapabileceğimiz veritabaynı yönetimi için 20'ye yakın fonksiyonu vardır; MySQL de bu fonksiyonlar yardımıyla çok sayıda iş yapabilir. Bu konuda ayrıntılı bilgiyi MySQL ve PHP'nin Internet sitelerin yanı sıra, http://hagen.let.rug.nl/~s0367672/pm_lin_e.htm adresinde bulabilirsiniz.&lt;br /&gt;Bu konuya son verirken, Form örneğindenden farklı olarak yukarıdaki veritabanı örneğinde ziyaretçinin gireceği bilgilerle ilgili güvenlik önlemleri alınmadığına dikkatinizi çekerim. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-6353422620601107604?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/6353422620601107604/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=6353422620601107604' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6353422620601107604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/6353422620601107604'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-ile-veritaban-phpprogramlama.html' title='PHP ile Veritabanı phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-1076259368513905567</id><published>2008-03-08T04:41:00.001-08:00</published><updated>2008-10-13T13:10:24.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Metin Düzenleme ve Düzenli İfadeler'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>Metin Düzenleme ve Düzenli İfadeler phpprogramlama</title><content type='html'>&lt;strong&gt;Metin Düzenleme ve Düzenli İfadeler&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Web programlarımızda bir ziyaretçinin bize ulaştırdığı Form bilgilerini ve bir veritabanı dosyasından aldığımız ham verileri yeniden düzenlememiz gerekir. PHP bunu yapabilmek için bize 50'den fazla fonksiyon sağlar. Bunlardan sık kullanmamız gerekenleri ele alacağız. Daha sonra, özellikle Unix işletim sistemine, Perl veya Javascript diline aşina olanların hatırlayacağı Düzenli İfadedeler denen metin ve sıralanış (pattern) eşleştirme araçlarının üzerinde duracağız. Bu iki araçla, elimize aldığımız berhangi metne istediğimiz biçimi vermek veya metnin içinden istediğimiz bölümü hemen hemen tamamen seçip biçimlendirmek ve kullanmak mümkün olur.&lt;br /&gt;Temel Alfanümerik Fonksiyonları&lt;br /&gt;PHP'nin metin olarak gördüğü değişkenlere alfanümerik (String) türü değişkenler adını vermiştik. PHP'nin alfanümerik fonksiyonları, bu tür değişkenlerin değerlerinin içinden bir bölümü alma, atma veya değiştirme imkanı sağlar. Programlarımızda sık kullanacağımız bir kaç fonksiyonu ele alalım. Bu fonksiyonların tam listesini bu kitapçığın örnek kodları arasında alfa_fonksiyonlar.htm adlı dosyada bulabilirsiniz. (Aşağıdaki örnekler de alfa_fonksiyonlarXX.php adlı dosyalarda bulunabilir.)&lt;br /&gt;substr()&lt;br /&gt;Bir alfanümerik değişkenin değerinin veya bir metnin tanımladığınız bölümünü verir. İkisi zorunlu, biri seçmeli üç parametre ile kullanılır. Yazılışı:&lt;br /&gt;substr($degisken, başla, [boyut] );&lt;br /&gt;Burada, $degisken yerine içinden bir bölümü seçmek istediğiniz metni tutan değişkenin adını; başla yerine seçme işleminin başlayacağı karakterin baştan itibaren kaçıncıdan sonra olduğunu ve isterseniz boyut yerine de seçilmesini istediğimiz karakter sayısını yazarız. Kaç karakter seçileceğini gösteren boyut parametresini yazmazsanız, PHP  değişkenin veya metnin sonuna kadar seçer. Örnek&lt;br /&gt;$secilen = substr ("abcdef", 1); &lt;br /&gt;Burada $secilen değişkeninin değeri "bcdef" olacaktır; çünkü birinci karakterden sonra seçime başlatıyoruz ve seçimin boyutunu belirlemiyoruz. PHP, verdiğimiz metnin sonuna kadar seçecektir. &lt;br /&gt;$degisken = "Olumsuz düşünce ve mekanizmalar üzerine olumlu şeyler bina edilemez!";&lt;br /&gt;$secilen = substr ($degisken, 8, 20);&lt;br /&gt;Burada ise seçime 8'nci karakterden sonra başladığımız ve 20 karakterlik seçim yapılmasını belirttiğimiz için seçilen değer "düşünce ve mekanizma" olacaktır. &lt;br /&gt;Başlanıç olarak verdiğiniz sayı negatif ise (önünde - işareti varsa) seçim işlemine değişkenin sonundan itibaren başlanır. Yukarıdaki substr() fonksiyonunu:&lt;br /&gt;$secilen = substr($degisken, -9);&lt;br /&gt;şeklinde yazarsak, dönen değer, "edilemez!" olacaktır.&lt;br /&gt;trim()&lt;br /&gt;Bir alfanümerik değişkenin değerinin baş ve son tarafındaki boşlukları atar. Yazılışı:&lt;br /&gt;trim($degisken);&lt;br /&gt;Bu fonksiyon değişken değerinin veya metnin başındaki ve sonundaki "\n", "\r", "\t", "\v", "\0", ve aralık işaretini boşluk sayar.  Örnek:&lt;br /&gt;$degisken = "\0   Olumsuz düşünce ve mekanizmalar üzerine olumlu şeyler bina edilemez!\n\r\t";&lt;br /&gt;$secilen = trim ($degisken);&lt;br /&gt;Burada seçilen metinde, baştaki boşluk, sondaki yeni satır, satır başı ve sekme karakterleri olmayacaktır.&lt;br /&gt;chr()&lt;br /&gt;Parametre olarak ASCII değerini belirttiğimiz karakteri sağlar. Örnek:&lt;br /&gt;echo (chr(34);&lt;br /&gt;Bu komutla Browser penceresinde çift-tırnak işareti görüntülenir.&lt;br /&gt;ord()&lt;br /&gt;Parametre olarak yazdığınız karakterin ASCII değerini sağlar. Örnek:&lt;br /&gt;echo (ord("A");&lt;br /&gt;Bu komutla Browser penceresinde 65 rakamı görüntülenir. bu fonksiyonun başlıca kullanım alanı, bir değişkenin değerini arzu ettiğimiz bir karakterin ACSII koduyla karşılaştırmak olabilir. Örneğin:&lt;br /&gt;if ( ord($karakter) ==  60 { // karakter "&lt;" işareti ise&lt;br /&gt; $karakter = "" ;&lt;br /&gt; }&lt;br /&gt;koduyla, bir Form'dan gelen verileri karakter-karakter sınayabilir ve içinde normal olarak bulunmaması gereken, zararlı kod parçası olması ihtimali bulunan karakterleri ayıklatabiliriz.&lt;br /&gt;strlen()&lt;br /&gt;Bir alfanümerik değişkenin değerinin kaç karakter içerdiğini bildirir. Yazılışı:&lt;br /&gt;strlen($degisken);&lt;br /&gt;Bu fonksiyondan dönen değer tam sayıdır; aritmetik işlemlerde kullanılabilir. Örneğin, ziyaretçinin bir INPUT alanına yazdığı yazının uzunluğunun arzu ettiğimiz ölçülere uygun olup olmadığını sınamakta bu fonksiyondan yararlanabiliriz:&lt;br /&gt;if ( strlen($degisken) &gt;  30 { // girilen değer 30 karakterden uzun ise&lt;br /&gt; echo ("Lütfen 30 karakterden uzun yazmayınız!);&lt;br /&gt; }&lt;br /&gt;printf() ve sprintf()&lt;br /&gt;Bu fonksiyonları bir değişkeni biçimlendirmekte kullanırız. Birincisinin elde ettiği sonuç ziyaretçinin Browser penceresine gönderilir; ikincisin elde ettiği sonuç ise değer olarak döner. Önce bu fonksiyonlarla kullanabileceğimiz biçim parametrelerini sıralayalım:&lt;br /&gt;%  Yüzde işareti. Yanında biçim parametresi gerekmez. &lt;br /&gt;b  Değişken tamsayı olarak işlem görür ve ikili sayı olarak döner.  &lt;br /&gt;c  Değişken tamsayı olarak işlem görür ve ASCII değerinin karşılığı olan karakter olarak döner. &lt;br /&gt;d  Değişken tamsayı olarak işlem görür ve ondalık sayı olarak döner. &lt;br /&gt;f  Değişken kesirli  sayı olarak işlem görür ve  kesirli sayı olarak döner. &lt;br /&gt;o  Değişken tamsayı olarak işlem görür ve sekiz-tabanlı (octal) sayı olarak döner. &lt;br /&gt;s  Değişken alfanümerik olarak işlem görür ve alfanümerik olarak döner. &lt;br /&gt;x  Değişken tamsayı olarak işlem görür ve 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, küçük harf olur). &lt;br /&gt;X  Değişken tamsayı olarak işlem görür ve 16 tabanlı (hexadecimal) sayı olarak döner. (Harfler, büyük harf olur).&lt;br /&gt;Her iki fonksiyonun da kullanılış biçimi aynıdır:&lt;br /&gt;printf( "biçim" , $degisken1, $degisken2, ... "metin" );&lt;br /&gt;Burada "biçim" yerine yukarıdaki biçim parametlerini yazarız. Biçim parametrelerinin önüne yüzde işareti konur; en fazla beş belirleyici özellik alabilir. Yukarıdaki tür belirten biçimlendirme parametlerine ek olarak diğer özellikler şöyle sıralanır:&lt;br /&gt;Doldurma karakteri: tek tırnak ve onu izleyen bir karakterden oluşur.&lt;br /&gt;Hizalama: Eksi işaretinin varalığı yazının sola, yokluğu ise sağa hizalanma anlamına gelir. &lt;br /&gt;En az-en çok uzunluk: Sayı-nokta-sayı (örneğin 40.40 gibi) yazılır; birinci sayı azamî, ikinci sayı asgarî uzunluğu belirtir.&lt;br /&gt;Bu üç özelliğe bir örnek verelim.Bir değişkenin değerinin sonuna yanyana yeteri kadar nokta konarak uzunluğunun 40 karaktere çıkartılmasını şu deyimle sağlarız:&lt;br /&gt;$degisken = " İyilik üzerine " ;&lt;br /&gt;printf( "%'.-40.40s" , $degisken);&lt;br /&gt;Burada "%'.-40.40s" şeklindeki biçim komutu, Browser penceresinde şu görüntüyü oluşturur:&lt;br /&gt;"İyilik üzerine.........................."&lt;br /&gt;Burada "İyilik üzerine" değeri 14 karakter olduğu için, sonuna  26 adet nokta eklenmiş ve bütün değer sola hizalanmış olacaktır. Şu komut ise iki değişkenin değerini ve vereceğimiz bir metni aynı satıra yazdıracaktır:&lt;br /&gt;$degisken1 = " İyilik üzerine " ;&lt;br /&gt;$degisken2 = " İyilik üzerine " ;&lt;br /&gt;$metin = "&lt;br&gt;\n" ;&lt;br /&gt;printf( "%'.-40.40s%'.2d%s" , $degisken1, $degisken2, $metin);&lt;br /&gt;Bu komut Browser penceresinde şu görüntüyü oluşturur:&lt;br /&gt;"İyilik üzerine..........................86"&lt;br /&gt;Burada eklediğimiz ikinci  "%'.2d" şeklineki biçim komutu ile, ikinci değişkenin değeri, en az sıfır en çok iki adet nokta ile doldurulmak ve sağa hizalanarak ondalık sayı olarak görüntülenmek üzere biçimlendiriliyor. Üçüncü biçim komutu olan "%s" ise üçüncü değişkenin sadece alfanümerik olarak muamele görmesini sağlıyor. Biçim komutlarının arasında boşluk bulunmaması, ait oldukları değişken değerlerinin de aralarına boşluk konmamasına sebep oluyor. Üçüncü değişkenin etkisini, kağıt üzerinde göremiyoruz; ancak bu Browser penceresinde bundan sonra gelecek unsurların bir satır aşağı kaymasını sağlayacaktır.&lt;br /&gt;Dördüncü biçim özelliği, ondalık sayıların virgülden (veya nokdtadan) sonra ondalık bölümünün kaç hane olacağını belirler. Bunu da bir örnekle görelim:&lt;br /&gt;$degisken = " 124 " ;&lt;br /&gt;printf( "Değeri (ABD) $%.2f" , $degisken);&lt;br /&gt;Bu biçimlendirme komutu da Browser penceresine şu yazıyı yazdırır:&lt;br /&gt;Değeri (ABD) $124.00&lt;br /&gt;number_format()&lt;br /&gt;Türü sayı olan değişken değerlerini bin-basamakları şeklinde biçimlendirmekte kullanılır. Parametre olarak sayı içeren değişkenin adını, ondalık bölümün kaç haneli olacağını, ondalık hanesini ve binler basamaklarını ayırmakta kullanılacak karakteri kabul eder. Örnek:&lt;br /&gt;$degisken = 1234567890.1234567890 ;&lt;br /&gt;echo (number_format($degisken, 4 chr(44) , ".") ); //chr(44)=virgül&lt;br /&gt;Bu deyimle 1234567890.1234567890 şeklindeki değer, Browser penceresine "1.234.567.890,1235" şeklinde yazdırılacaktır.&lt;br /&gt;Tarih ve Saat Düzenleme&lt;br /&gt;PHP'nin tarih ve zaman bilgisini kullanmamızı sağlayan getdate() fonksiyonunun yanı sıra, elde ettiğimiz bilgileri çok daha esnek biçimlendirmemizi sağlayan date() fonksiyonu da sık kullanılır. Bu fonksiyon çağrıldığı yerde bize Unix sisteminin Epoch zaman-tarih damgasını verir. Bu verinin biçimlendirilmesi için çeşitli parametreler vardır. Bu parametreler, gün adlarının dili ve tarihlerin yazılışı bakımından Web sunucusunun bulunduğu bilgisayardaki bölgesel ayarlara göre sonuç verir.&lt;br /&gt;date() $tarih date( biçimlendirme_parametreleri );&lt;br /&gt;Burada biçimlendirme_parametleri yerine şunları yazabilirsiniz:&lt;br /&gt;a 12 saat esasına dayanan Anglo-Sakson sistemlerinde öğleden önce ("am") veya öğleden sonra ("pm") işaretinin verilmesini sağlar.&lt;br /&gt;A Aynı işaretlerin büyük harfle yazılmasını sağlar.&lt;br /&gt;d  İki haneli gün sayısı, tek haneli günlerin önüne sıfıır konur: "01" - "31" &lt;br /&gt;D  Üç haneli gün adı kısatması: "Cum" &lt;br /&gt;F  Uzun ay adı: "Ocak" &lt;br /&gt;h   12 saatlik sistemde saat: "01" - "12" &lt;br /&gt;H  24 saatlik sistemde saat: "00" - "23" &lt;br /&gt;g  12 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: "1" - "12" &lt;br /&gt;G  24 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: "0" - "23" &lt;br /&gt;i  Dakika: "00" - "59" &lt;br /&gt;j  Tek haneli sayıların önüne sıfır konmadan gün sayısı "1" - "31" &lt;br /&gt;l  (küçük L harfi) Uzun gün  adı: "Cuma" &lt;br /&gt;L  Artık yıl olup olmadığına ilişkin Boolean (doğru/yanlış) değişken. Artık yıl ise 1, değilse 0. &lt;br /&gt;m  Tek hanelilerin önüne sıfır konarak ay sayısı: "01" - "12" &lt;br /&gt;n  Tek hanelilerin önüne sıfır konmadan ay sayısı: "1" - "12" &lt;br /&gt;M  Kısaltılmış ay adı: "Şub" &lt;br /&gt;s  Saniye: "00" - "59" &lt;br /&gt;S  İngilizce ('ncı anlamına) 2 karakter ek: "th", "nd" &lt;br /&gt;t  Belirtilen  ayın gün sayısı; "28" - "31" &lt;br /&gt;w  Haftanın gün sayısı: "0" (Pazar veya Pazartesi) - "6" (Cumartesi veya Pazar) &lt;br /&gt;Y  Dört haneli yıl: "2000" &lt;br /&gt;y  İki haneli yıl "00" &lt;br /&gt;z  Yılın gün sayısı: "0" - "365" &lt;br /&gt;Örnek:&lt;br /&gt;print (date ("l dS of F Y h:i:s A"));&lt;br /&gt;Browser penceresine İngilizce bölgesel ayarlar yapılmış bir bilgisayara kurulu Web sunucusunda: "Sunday 30th of July 2000 07:51:08 AM" yazdırır.&lt;br /&gt;print (date ("l, d F Y g:i:s"));&lt;br /&gt;Browser penceresine Türkçe bölgesel ayarlar yapılmış bir bilgisayara kurulu Web sunucusunda: "Pazar, 30 Temmuz 2000 07:51:08" yazdırır.&lt;br /&gt;date() ve mktime() fonksiyonlarını birlikte kullanarak geçmiş veya gelecek tarihleri bulma imkanı de vardır. Örnek: &lt;br /&gt;$yarin  = mktime (0,0,0,date("m")  ,date("d")+1,date("Y"));&lt;br /&gt;$gecen_ay = mktime (0,0,0,date("m")-1,date("d"),  date("Y"));&lt;br /&gt;$gelecek_lyl = mktime (0,0,0,date("m"),  date("d"),  date("Y")+1);&lt;br /&gt;Düzenli İfadeler&lt;br /&gt;Unix işletim sistemini geliştirenlerin bilişim teknolojisine kazandırdığı bir diğer değer biçilemez araç olan Düzenli İfadeler (Regular Expressions), belki de işaretlerinin karmaşıklığı sebebiyle programcıların fazla dokunmak istemedikleri bir alandır. Bu kavramla daha önce tanışmış olmayanlara, CGI veya Javascript kodlarında gördükleri,&lt;br /&gt;^.+@.+\\..+$&lt;br /&gt;işaretlerinin, Düzenli İfade işlemlerine ait olduğunu belirtilim. Bu işaretler ve onların arasına koyduğumuz karakter örnekleri ile, PHP'nin aradığımız bir metnin karakterlerinin hangi diziliş, sıralanış konumunda olduğuna bakarak, bize o metni bulmasını sağlarız; ya bu metni kullanırız, sileriz veya değiştiririz. Dolayısıyla, Düzenli İfade demek, bir diziliş, sıralanış biçimi demektir. Düzenli İfade oluşturarak, PHP'ye "İşte buradaki gibi sıralanmış karakterleri bul!" demiş oluruz. Düzenli İfade, PHP'ye verdiğimiz sıralanışa uygun metnin nerede ve kaçıncı kez bulunmasını istediğimizi de belirtir. Ayrıca, bu ifade ile, PHP'nin bulduğu metni (veya metinleri) ne yapmasını istediğimizi de söyleriz.&lt;br /&gt;Eşleştirme deyimleri ve işaretler&lt;br /&gt;PHP'nin karakter ve sıralanış eşlemede kullanılan düzenli ifade komutlarını kısaca ele alalım; sonra bunları kullanmamıza imkan veren fonksiyonları görelim.&lt;br /&gt;^hakk&lt;br /&gt;"hakk" ile başlayan bütün kelimeleri bulur. ^işareti, onu izleyen karakterin sadece alfanümerik değişkenin başında olması gerektiğine işaret eder. Bu deyimle, "Hakkı Öcal bugün buradaydı!" veya "Hakkıdır hakka tapan, milletimin istiklâl!" eşleşebilir; fakat "Anaların hakkı ödenmez!" eşleşmez; çünkü PHP açısından ^işaretinin anlamı, "Başlangıcında 'hakk' karakterlerinin sıralanıyla aynı sıralanıştaki alfanümerik değeri bul!" demektir.&lt;br /&gt;edilemez$&lt;br /&gt;Bu deyim ise PHP'ye "edilemez" ile biten bütün kelimeleri bulur. Sözgelimi, "Kötümser insanın yükselişinden bahsedilemez" cümlesi bu deyimle bulunabilir; fakat sonunda nokta olduğu için ".. edilemez." diye biten hiç bir cümle bu deyimle eşleşemez.&lt;br /&gt;^hakkı$&lt;br /&gt;PHP, başında ^ işareti, sonunda $ işareti bulunan kararter sıralanışını, aynen arar; yani bu deyim, birinci örnekteki üç cümleyi de bulamaz.&lt;br /&gt;hakk&lt;br /&gt;Bu deyim ise her üç cümleyi de buldurur; çünkü üçünde de bu dört karakter bu sıralanışla mevcuttur. PHP'nin Düzenli İfadeleri, bütün rakam ve harfleri eşleştirebilir. Fakat sorun, özel karakterlerde çıkar. Sözgelimi, sekme işareti, satır sonlarında yeni-satır/satırbaşı işareti, gibi özel karakterleri, ancak önlerine Escape işareti olan ters bölü işaretini koyarak buluruz.&lt;br /&gt;/////////////////////KUTU/////////////////////&lt;br /&gt;Düzenli İfadelerde Özel Karakterler&lt;br /&gt;[\b] Geri (Backspace) karakterini bulur.&lt;br /&gt;\b Belirtilen karakterle sınırlanan kelimeyi bulur: k\b, "hak mücadelesi" ifadesindeki birinci k'yı bulur; çünkü bu harf, bir kelime sınırlayıcıdır.&lt;br /&gt;\B Belirtilen karakterle sınırlanmayan kelime yoksa, başlayanı bulur: k\Bi, "üç kişi" ifadesindeki 'ki'yi bulur.&lt;br /&gt;\cX X yerine yazacağımız kontrol karakterini bulur. Örneğin, \cA, Ctrl+A'yı, \cZ ise Ctrl+Z'yi bulur.  &lt;br /&gt;\d 0'dan 9'ya kadar bir rakamı bulur: IE\d, her ikisi de herhangi bir rakamla biten "IE5" ve "IE4" değerlerini ikisini de bulur, &lt;br /&gt;\D Herhangi bir ondalık işaretini bulur. &lt;br /&gt;\f Form-feed (kağıt çıkart) karakterini bulur.&lt;br /&gt;\n Newline (yeni satır) karakterini bulur.&lt;br /&gt;\r Return (satırbaşı) karakterini bulur.&lt;br /&gt;\s Boşluk (space) bulur.&lt;br /&gt;\S Yatay ve düşey sekme, kağıt-çıkart, yeni satır, satırbaşı ve boşluk dışındaki herhangi bir karakteri bulur.&lt;br /&gt;\t Yatay sekme (Tab) karakterini bulur.&lt;br /&gt;\v Düşey sekme karakterini bulur.&lt;br /&gt;\w Herhangi bir harf, rakam veya alt-çizgiyi bulur.&lt;br /&gt;\W Harf, rakam ve alt-çizgi dışındaki karakteri bulur.&lt;br /&gt;\xHex Verilen 16 tabanlı (Hexadecimal) sayıya uygun Escape karakterini bulur. Örneğin, \n25, % işaretini bulur. &lt;br /&gt;///////////////////////KUTU BİTTİ///////////&lt;br /&gt;Bu arada noktalama işaretlerini arattırırken, önlerine ters bölü işareti koymak gerekir. Ters bömü işaretini de yine önüne ters bölü işareti koyarak (\\) arttırabilirsiniz.&lt;br /&gt;Karakter Grupları&lt;br /&gt;PHP'nin Düzenli İfadeleri'nde kolaylık sağlayan ve mesela ziyaretçinin bir Form'da bir INPUT etiketine verdiği yanıtıların içinde olmaması veya olmaması gereken karakterleri bulmamıza imkan veren karakter grupları oluşturma yöntemini de kullanabiliriz. Sözgelimi bütün sesli hafleri aratmak için şöyle bir karakter grubu oluşturabiliriz:&lt;br /&gt;[OoUuÖöAaOoEeıIiİ]&lt;br /&gt;Karakter gruplarını köşeli parantez içinde yazarız. Bu deyimle, PHP, içinde herhangi bir sesli harf bulunan bütün değerleri eşleştirecektir. Bu yöntemden yararlanarak, şu grupları kullanabiliriz:&lt;br /&gt;[a-z] Herhangi bir küçük harfi bulur.&lt;br /&gt;[A-Z] Herhangi bir büyük harfi bulur.&lt;br /&gt;[a-zA-Z] Herhangi bir büyük veya büyük harfi bulur.&lt;br /&gt;[0-9] Herhangi bir rakamı bulur.&lt;br /&gt;[0-9\.\-] Herhangi bir rakamı, noktayı veya kesme çizgisini bulur.&lt;br /&gt;[ \f\r\t\n] Herhangi bir Form-feed (kağıt çıkart), Newline (yeni satır), Return (satırbaşı) karakterini veya  boşluğu (space) bulur.&lt;br /&gt;Sözgelimi, bir alfanümerik değer kümesinde b3, u2, n9 gibi birincisi küçük harf, ikincisi rakam olan iki karakterlik dizileri bulmak istiyorsak, arama grubunu şöyle kurarız:&lt;br /&gt;^[a-z][0-9]$&lt;br /&gt;Bu deyim PHP'ye, a'da z'ye küçük harfle başlayan, (^işareti aranan unsurun değerin başında olması gerektiğini söylüyor) ve sonunda 0'dan 9'a bir rakam bulunan kelimeleri bulmasını söyleyecektir. PHP, bu kelimenin sadece iki harfli olmasına dikkat edecektir; çünkü grubumuzun bir başı ve bir de sonu belirlendiğine göre, üç karakterli değerlerin bulunması imkanı yoktur.&lt;br /&gt;^işareti köşeli parantez içinde grup deyimi oluştururken kullanılırsa, bu olumsuzluk anlamı taşır. Sözgelimi, iki rakamlı ancak birinci karakteri rakam olmayan fakat ikinci karakteri rakam olan değerlerin bulunması için şu deyim gerekir:&lt;br /&gt;^[^0-9][0-9]$&lt;br /&gt;Burada en baştaki ^işareti "başında" demektir; ancak hemen arkasından gelen grupta "rakam olmayan" demiş oluyoruz; ikinci grup ve sonundaki $ işareti ile "rakamla biten" anlamına geliyor. Deyimde sadece baş ve sonu gösteren iki eşleştirme unsuru bulunduğuna göre bu deyim, "başında rakam olmayan, sonunda rakam olan iki karakterli değerleri" bulmaya yarayacaktır. Bu deyim söz gelimi 13'ü bulmayacak, fakat u2'yi bulacaktır. Bu yöntemle şu grupları yapabiliriz:&lt;br /&gt;[^a-z] Küçük harf olmayan herhangi bir harfi bulur.&lt;br /&gt;[^A-Z] Büyük harf olmayan herhangi bir harfi bulur.&lt;br /&gt;[^\\\/\^] \ , / veya ^ dışında herhangi bir karakteri bulur.&lt;br /&gt;[^\"\'] Çift ve tek tırnak dışında herhangi bir karakteri bulur.&lt;br /&gt;Grup oluşturmada kullandığımız özel karakterler de vardır. Örneğin nokta işareti (.), yeni satır başlangıcı olmayan herhangi bir karakter anlamına gelir. Dolayısıyla,&lt;br /&gt;^.0$&lt;br /&gt;deyimi yeni satırla başlamayan ve sıfır ile biten herhangi iki karakterli değeri bulacaktır.&lt;br /&gt;PHP'nin kullanılmaya hazır özel Düzenli İfade eşleştirme grupları da vardır:&lt;br /&gt;[[:alpha:]] Herhangi bir harf&lt;br /&gt;[[:digit:]] Herhangi bir rakam&lt;br /&gt;[[:alnum:]] Herhangi bir harf veya rakam&lt;br /&gt;[[:space:]] Herhangi bir boş karakter&lt;br /&gt;[[:upper:]] Herhangi bir büyük harf&lt;br /&gt;[[:lower:]] Herhangi bir küçük harf&lt;br /&gt;[[:punc:]] Herhangi bir noktalama işareti&lt;br /&gt;[[:xdigit:]] Herhangi bir Hexadecimal karakter. [0-9a-fA-F]&lt;br /&gt;Karakter eşleştirmede tekrar sayısı da bir özellik olarak kullanılabilir. Tekrar sayısı belirtmek için süslü parantez ({}) kullanırız. Örnekler:&lt;br /&gt;^a{4}$ İçinde sadece dört adet küçük a harfi bulunan kelimeleri seç: aaaa.&lt;br /&gt;^a{2,4}$ İçinde sadece iki üç veya dört adet küçük a harfi bulunan kelimeleri seç: aa, aaa, aaaa gibi&lt;br /&gt;^a{2, } İki veya daha fazla küçük a harfi bulunan kelimeleri seç: haar, haaar, haaaar gibi. Bu deyim "har" kelimesini seçmez.&lt;br /&gt;\t{2} Ardarda iki sekme işaretini bul&lt;br /&gt;.{2} Herhangi çift karakteri bul: aa, &amp;&amp;, == gibi&lt;br /&gt;^\-{0,1}[0-9]{1,}$ Negatif veya pozitif herhangi bir tam sayıyı bul&lt;br /&gt;^[0-9]{1,}$ Pozitif herhangi bir tam sayıyı bul&lt;br /&gt;Bu tür deyim oluşturma işlemleri giderek karmaşıklaşabilir. Örneğin:&lt;br /&gt;^\-{0,1}[0-9]{0, }\.{0,1}[0-9]{0, }$&lt;br /&gt;Bu karmaşık deyim aslında sadece "Negatif veya pozitif bir ondalık (double) değeri bul," anlamına geliyor. Kısaca irdelersek, aranan degerin sıfır veya bir kere tekrarlanan bir kesme çizgisiyle başlayabileceğini ("Sıfır veya bir kere" demek, olsa da olur, olmasa da anlamına geliyor!) bunu sıfır veya daha fazla kere tekrarlanan bir rakamın izleyebileceğini, onu da sıfır veya bir kere tekrarlanan bir nokta işareti ile sonunda sıfır veya daha fazla kere tekrarlanan herhangi bir rakamın izleyebileceğini söylemiş oluyoruz. &lt;br /&gt;PHP bu tür karmaşık ifadelerin hatasız yazılmasını sağlayan kısayollara sahiptir. Bunları sıralayalım:&lt;br /&gt;?  {0,1} anlamına gelir. Kendisinden önce yer alan unsurun en az sıfır en çok bir kere tekrar edilmesi gerektiğini (olmayabileceğini ama olursa en fazla bir kere olabileceğini) belirtir.&lt;br /&gt;* {0, } anlamına gelir. Kendisinden önce yer alan unsurun sıfır veya daha fazla kere tekrar edilmesi gerektiğini (tümüyle opsiyonel olduğunu) belirtir.&lt;br /&gt;+ {1, } anlamına gelir. Kendisinden önce yer alan unsurun en az bir veya daha çok kere tekrar edilmesi gerektiğini (bulunmasının zorunlu olduğunu) belirtir.&lt;br /&gt;Bu kısa-yolları kullanarak, yukarıdaki karmaşık ifadeleri basitleştirelim:&lt;br /&gt;^[a-zA-Z0-9_]+Ş En az bir harf veya rakam veya altçizgi içeren herhangi bir kelime&lt;br /&gt;^[0-9]+Ş Herhangi bir pozitif tamsayı&lt;br /&gt;^\-?[0-9]+Ş Herhangi bir tamsayı&lt;br /&gt;^\-?[0-9]*\.[0-9*$]+Ş Herhangi bir kesinli (double) sayı&lt;br /&gt;Bir Düzenli İfade'nin yazılışında birden fazla arama-sıralanış deyimine yer verebiliriz. Bunu yapmamızı sağlayan | işaretidir. Örneğin,&lt;br /&gt;\.com|\.co\.uk&lt;br /&gt;ifadesi ile, ya ".com" ya da ".co.uk" değerlerinin bulunmasını sağlayabiliriz. Burada | işareti "veya" kelimesi gibi düşünebilirsiniz.&lt;br /&gt;Düzenli ifadeler yoluyla INPUT etiketinden gelen değerleri incelerken hata yapmak kolaydır. Bunun için kendi ifadelerinizi mutlaka sçeşitli olasılıklara karşı sınamalısınız. Bu bölümün başında örnek olarak verdiğimiz Düzenli İfade'yi hatırlıyor musunuz?&lt;br /&gt;^.+@.+\\..+$&lt;br /&gt;Örneğin bu ifade, ziyaretçinin elektronik posta adresini yazması gereken bir INPUT etiketinin sağladığı değerin gerçekten elektronik adres biçimi taşıyıp taşımadığını sınar. Baştaki ^ ve nokta işaretleri ile artı işareti değerin önünde boşluk olmamasını sağlıyor; @ işareti ise değerin içinde @ bulunması gerektiğine işaret ediyor. Tekrar eden nokta ve artı işaretleri "ne kadar olursa olsun ve ne olursa olsun" anlamına geliyor. Bunu izleyen nokta karakterini gösteren (\.) işaret buralarda bir de gerçekten nokta olması gerektiğini ve bunu izleyen nokta ve artı tekrar "ne olursa olsun, ne kadar olursa olsun" anlamını taşıyor. Başka bir deyişle, aradığımız değerin "herhangi bir şey" @ "herhangi bir şey daha" . "birşeyler daha" şeklinde olduğunu belirtmiş oluyoruz. Ne var ki deyimiçinde iki nokta veya iki @ işareti olan veya @ işareti ile nokta arasında bir şey bulunmayan veya @ veya noktadan öncesi ya da sonrası boş olan bütün değerleri safdışı etmeye yetmeyecektir.  Sözgelimi bir ziyaretçimiz "@@@@.@@@" yazarsa, bu deyim  bu değeri geçerli bir elektronik adres sayacaktır.&lt;br /&gt;PHP programlarımızda ziyaretçilerimizin verdiği değerleri çeşitli bakımlardan sınamak ve seçmek mümkündür; ancak hiç bir zaman yazılanların doğruluğunu garanti edemeyiz. Fakat özellikle bir metinde bulunmaması gereken işaretlleri PHP'ye aratabiliriz. Bunu Düzenli İfade Fonksiyonları sağlar. &lt;br /&gt;Düzenli İfade Fonksiyonları&lt;br /&gt;Yukarıda öğrendiğimiz Düzenli İfade yazma tekniklerini, PHP'nin bize sağladığı beş fonksiyonda parametre olarak kullanırız. PHP'nin ayrıca Perl-tarzı düzenli ifade fonksiyonları da vardır. Bu fonksiyonlardan, ya bize bir boolean (doğru/yanlış) değer döner; ya da fonksiyon istediğimiz işi yaparak vardığı sonuçları verdiğimiz değişkene yazar. Biz, daha sonra bu değere bakarak veya değişkenin değerlerini kullanarak, PHP programımızın akışını kontrol edebiliriz. Burada ele alacağımız fonksiyonlara ilişkin örneklerde, daha önceki bölümlerde oluşturduğumuz konuk defteri programı ile Web ziyaretçilerimizin sunucuya göndereceği bilgileri doğrulamaya ve muhtemel zararlı kodlardan ayıklamaya çalışacağız.&lt;br /&gt;ereg() ve eregi()&lt;br /&gt;PHP'nin temel Düzenli İfade Fonksiyonu, ereg(), arattığımız karakter sıralanışı bulunduğu taktirde doğru, bulamadığı taktirde yanlış karşılığı bir değer verir. Fonksiyonu şöyle yazarız:&lt;br /&gt;$bir_degisken = ereg("eşleştirilecek_sıra" , $kaynak , $yeni_değişken);&lt;br /&gt;Fonksiyonun aradığımız eşleştirmeyi yapması halinde, buradaki $bir_degisken'in değeri true/doğru, yapamaması halinde false/yanlış olacaktır. Eşleştirme sırasının nasıl oluşturulduğunu yukarıda gördük; bu ifadelerden işimize uygun olanı buraya tırnak içinde yazarız. $kaynak, eşleştirilecek sıralamanın içinde aranacağı değeri tutan değişkendir. Fonksiyonun bir diğer becerisi, eğer eşleştirilecek sıralamayı gruplar halinde verirsek, kaynakta yapacağı eşleştirme olursa, buna uygun değerleri bir dizi değişkene yazabilmesidir; istersek bir parametre olarak bu yeni değişkenin almasını istediğimiz adı veririz; böylece eşleştirme sonucu bulunan değerler kaydedilmiş olur.&lt;br /&gt;eregi(), aynen ereg() fonksiyonu gibi çalışır; sadece eşleştireceği değerlerde büyük-harf/küçük-harf farkı gözetmez.&lt;br /&gt;Daha önceki bölümde oluşturduğumuz ve kd_01.php adıyla kaydettiğimiz konuk defteri programının akış planını, ziyaretçinin Form'a yazdığı ve sunucuda $HTTP_POST_VARS dizi-değişkeninde tutulan değişkenlerinden elektronik posta adresi ilge ilgili olanı gerçekten içinde en az bir @ işareti ile en az bir adet nokta içip içermediğine bakarak sınayabiliriz. Böyle bir sınama için gerekli kod şöyle olabilir:&lt;br /&gt;if (eregi("^.+@.+\\..+$", $adres, $email)) {&lt;br /&gt; }&lt;br /&gt; else { &lt;br /&gt; $hata = "Elektronik posta adresinizde bir hata var!&lt;br&gt;";&lt;br /&gt;   echo $hata;&lt;br /&gt;   include("kd_hata_halinde.htm");&lt;br /&gt;   exit;&lt;br /&gt; }&lt;br /&gt;Program, bu örnekte $adres değişkeninde kayıtlı değerin içinde aradığı sıralamayı bulursa, eşleşen değeri $email adlı yeni bir değişkene yazacak ve if sınavının sonucu doğru olacaktır. Bu sıralamaya uygun bir değer bulunamazsa, if sınavı else deyimine atlayacak ve bir hata mesajı üretilerek, bu program durdurulacaktır. (Burada, yaptığı hayatı düzeltmesi yani geçerli bir elektronik posta adresi vermesini sağlayan yeni sayfanın, include komutu ile ziyaretçiye gönderildiğine dikkat edin. Bu programın yeni biçimi kitapçığın örnek kodları arasında kd_02.php adıyla bulunabilir.)&lt;br /&gt;ereg_replace() ve eregi_replace()&lt;br /&gt;Gördüğümüz gibi, ereg() arattığımız karakter sıralanışı bulunduğu taktirde doğru, bulamadığı taktirde yanlış karşılığı verdikten sonraduruyor! Oysa kimi zaman arattığımız ve bulunan değerin başka bir değierle değiştirilmesi gerekebilir. Bunun için ereg_replace() ve eregi_replace() fonksiyonlarını kullanırıız:&lt;br /&gt;ereg_replace("eşleştirilecek_sıra" , yeni_metin , $kaynak);&lt;br /&gt;Fonksiyonun aradığımız eşleştirmeyi bulursa, bu değerin yerine verdiğimiz yeni metni koyacaktır; yeni metni bir değişkenin değeri olarak da verebiliriz. Uygulama örneği için yine konuk defteri örneğine dönelim. Ziyaretçilerimiz kimi zaman yanlışlıkla, kimi zaman pek de iyi niyet sonucu olmadan, kendilerinden beklediğimiz isim, adres ve mesaj yerine sunucu veya başka ziyaretçilerin Browser programları tarafından kod gibi algılanacak metinler yazabilirler. PHP'de güvenlik bölümünde bu konuda daha ayrıntılı bilgi bulacaksınız. Burada sadece bu tür zararlı metinlerin genellikle programlarda bulunması gereken karakterler içerdiğini söylemekle yetinelim. Bu tür karakterlerin başında &lt; ve &gt; işaretleri bulunur! Dolayısıyla, biz de ziyaretçimizden gelecek verilerin yazıldığı değişkenlerin değerlerinde bu işaretleri aratabilir ve  bunları içi boş bir alfanümerik değer ile değiştirebilir; yani silebilir. Zararlı olabilecek kodların arasında daha bir çok karakter bulunabilir; ancak Script diliyle yazılması gereken bu kodlardan &lt; ve &gt; işaretlerini kaldırılması kodları işlemez hale getireceği için, şu aşağıdaki örnek yeterli olabilir:&lt;br /&gt; $adi = ereg_replace("&lt;","",$adi);&lt;br /&gt; $adi = ereg_replace("&gt;","",$adi);&lt;br /&gt; $adres = ereg_replace("&lt;","",$adres);&lt;br /&gt; $adres = ereg_replace("&gt;","",$adres);&lt;br /&gt; $mesaj = ereg_replace("&lt;","",$mesaj);&lt;br /&gt; $mesaj = ereg_replace("&gt;","",$mesaj);&lt;br /&gt;Burada ereg_replace() fonksiyonu, ziyaretçiden gelecek üç değişkenin değerlerinde &lt; ve &gt; işaretlerini aramakta onların yerine içi boş bir metin ("") yazmaktardır. (Bu örneği içeren konuk defteri, bu kitapçığın örnek kodları arasında kd_03.php adıyla bulunabilir.)&lt;br /&gt;split()&lt;br /&gt;Düzenli İfade ile çalışan bu fonksiyon, vereceğimiz eşleştirme sıralamasını sınırlayıcı olarak kullanarak, belirteceğimiz değerde bulduğu değer parçalarını ayırır ve bunları ayrı ayrı bir dizi değişkenin elemanları olarak kaydeder. Bu fonksiyonu şöyle yazarız:&lt;br /&gt;$yeni_dizi_değişken = split("eşleştirilecek_sıra" , $kaynak, sınır_sayısı);&lt;br /&gt;Fonksiyon, aradığı sıralamayı bulamazsa, false/yanlış sonucunu verir. Burada sınır sayısı olarak vereceğimiz rakam, oluşturulacak yeni dizi değişkene en fazla kaç eleman yazılmasını istediğimizi gösterir. Bu sayıyı vermezsek, PHP yeni dizi değişkenin gerektiği kadar elemana sahip olmasını sağlar. Bir örnek vererek, bu fonksiyonu nasıl kullanibileceğimizi görelim:&lt;br /&gt;&lt;?php&lt;br /&gt;$metin = "İnsan sözüyle kendini gösterir, davranışlarıyla ruh halini aksettirir.";&lt;br /&gt;$aranan = " ";&lt;br /&gt;$yeni_dizi_değişken = split($aranan, $metin);&lt;br /&gt;foreach ($yeni_dizi_değişken as $eleman) {&lt;br /&gt;print "$eleman &lt;br&gt;";&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;Bu programda PHP, $metin değişkeninin içerdiği değerde $aranan değişkeninin içerdiği değeri, yani boşluğu, eşleştirilecek unsur olarak kullanacak ve $metin değişkeninin değerini boşluklarından parçalara ayıracaktır. Ayrılıcak her yeni parça, $yeni_dizi_değişken adlı değişkenin elemanları olarak atanacaktır. Programın geri kalan kısmı ise, bu yeni dizinin elemanlarını görüntülemekterdir.&lt;br /&gt;sql_regcase()&lt;br /&gt;İçinde büyük harf-küçük harf ayrımı olan bir değeri büyük harf-küçük harf ayrımı olmayan Düzenli İfadeler haline çevirir. Bu fonksiyon bizden Düzenli İfade almaz, tersine Düzenli İfade oluşturur. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$metin = "Sözler";&lt;br /&gt;echo(sql_regcase($metin);&lt;br /&gt;?&gt;&lt;br /&gt;Bu program, Browser penceresine şu metni yazdırır:&lt;br /&gt;[Ss][Öö][Zz][Ll][Ee][Rr]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-1076259368513905567?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/1076259368513905567/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=1076259368513905567' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1076259368513905567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1076259368513905567'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/metin-dzenleme-ve-dzenli-ifadeler.html' title='Metin Düzenleme ve Düzenli İfadeler phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-3186895202660719865</id><published>2008-03-08T04:40:00.001-08:00</published><updated>2008-10-13T13:10:24.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHp de dosya işlemleri'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>PHp de dosya işlemleri Dosya İşlemleri phpprogramlama</title><content type='html'>Dosya İşlemleri&lt;br /&gt;Web programıcısı olarak ziyaretçinin bize göndereceği bilgileri yakalamayı öğrendik. Şimdilik sadece ziyaretçinin Browser'ına geri gönderdiğimiz bu bilgileri, sunucu tarafından çeşitli işlemlerde kullanabiliriz. Bu işlemlerin başında dosya girdi/çıktı işlemleri gelir. Başka bir ifade ile ziyaretçiden aldığımız bu bilgileri sunucuda bir dosyaya yazdırabiliriz. Bu bölümde PHP ile sunucuda yapabileceğimiz dosya işlemlerine bakacağız. Tabiî dosya işlemleri dendiğinde sadece ziyaretçiden aldığımız bilgileri bir dosyaya yazdırmakla yetinmeyeceğiz; PHP programlarımıza sunucuda bir dosyada bulunan bilgileri okumasını da öğreteceğiz. &lt;br /&gt;Harici Dosya (include)&lt;br /&gt;PHP programlarımızda bilmemiz gereken ilk dosya işlemi, bir PHP programına, kendi dışındaki dosyayı, tabir yerinde ise, okutmak ve içindekileri aynen alıp, görüntülemesini sağlamaktır. Bunu include komutu ile yaparız. Bu komut, kendisine adı verilen düzyazı dosyasının içeriğini aynen bu komutun bulunduğu noktaya "yazar." Bu yolla bir PHP programına sık kullandığınız bir metni veya program parçasını dahil edebilirsiniz. Bir güvenlik önlemi olarak bu tür dosyaların uzantılarını, sunucu ve Browser'ların tanıdğı MIME türlerine ait uzantılardan farklı yaparsanız, ziyaretçiler şans eseri de olsa bu dosyaları doğruca edinme imkanı bulamazlar. Bir örnek yapalım. Önce şu metni, harici_dosya01.x adıyla ve düzyazı biçiminde kaydedin (Windows ortamında Notepad'i kullanıyorsanız, dosya adı uzatması olarak .x harfinden sonra .txt harflerini eklediğine dikkat edin!):&lt;br /&gt;"Ben harici bir dosyanın içindeki yazıyım.. Beni bir PHP programı alıp buraya getirdi! Kendisine teşekkür ederim"&lt;br /&gt;Sonra, şu programı dosya_ekle01.php adıyla kaydedin, ve Browser'da açın:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Harici Dosya Ekleme&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-9\"&gt;&lt;br /&gt;&lt;meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1254\"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;include ("harici_dosya01.x");&lt;br /&gt;print ("\n&lt;p&gt; Ben zaten bu programının içinde olan bir yazıyım. Baştan beri burada olduğuma çok memnununum.. Harici dosyaya hoşgeldin diyorum!&lt;/p&gt;");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Buradaki include komutu biraz önce yazdığımız harici dosyayı alacak, içeriğini aynen kendi bulunduğu noktada, PHP'nin oluşturacağı HTML dosyasına katacaktır. Bu programı çalıştırdığınızda görüntü şöyle olacaktır:&lt;br /&gt;&lt;php00026.tif&gt;&lt;br /&gt;Bu görüntüyü aldığınız sırada Browser'ınızda kaynağı görüntülerseniz, iki metnin adeta birleştirilmiş olduğunu göreceksiniz. Fakat dışardan PHP programına sadece düz metin eklemeyiz; program veya fonksiyon da ekleyebiliriz. Harici dosyada şu değişikliği yaparak, harici_dosya02.x adıyla kaydedin. &lt;br /&gt;&lt;?php&lt;br /&gt;print ("Ben de harici dosyayım.!&lt;br&gt;");&lt;br /&gt;print ("Ama ben hesap da yaparım.. Örneğin iki iki daha ". (2 + 2). " eder!");&lt;br /&gt;?&gt;&lt;br /&gt;Haricî dosya okuyan programı da programı içinde, okunacak dosya adını düzelttikten sonra dosya_ekle02.php adıyla kaydedin; ve çalıştırın.&lt;br /&gt;&lt;php00027.tif&gt;&lt;br /&gt;Haricî dosyamızda yer alan ...iki iki daha ". (2 + 2). " eder!"); şeklindeki ifadenin programa gelirken "..iki iki daha 4 eder!" şekline gelmesinin izahı, PHP'nin dışarıdan aldığı dosyanın içinde PHP programı olduğunu gördüğü anda, bu dosyanın içeriğini metin olarak değil, program olarak ele almasıdır. Bu yolla, PHP programlarımıza bir değerin dönmesini de sağlayabiliriz. Haricî dosyamızda şu değişikliği yapalım ve harici_dosya03.x adıyla kaydedelim:&lt;br /&gt; &lt;?php&lt;br /&gt;$sonuc = ( 2 + 2 );&lt;br /&gt;return $sonuc;&lt;br /&gt;?&gt;&lt;br /&gt;Bu satır bakalım programa dahil olacak mı?&lt;br /&gt;Sonra, program metninde şu değişlikliği yaparak, dosya_ekle03.php adıyla kaydedin ve çalıştırın:&lt;br /&gt;&lt;?php&lt;br /&gt;$donen_sonuc = include("harici_dosya03.x");&lt;br /&gt;print ("\n&lt;p&gt; Harici dosyadan dönen sonuç: $donen_sonuc &lt;/p&gt;");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;php00028.tif&gt;&lt;br /&gt;Haricî dosyamızın içindeki program, return komutu ile sadece kendi içinde elde ettiği sonucu, onu çağıran programa verdi; ve bu sonucu alan programımız, sadece kendi içindeki bir değişkenin değerini Browser'a gönderdiği halde, bu değer haricî dosyadan alınmış oldu.&lt;br /&gt;Haricî dosyaların include yoluyla PHP programlarımıza katılması, özellikle bir sitenin bir çok programında sık sık kullanılan metinlerin ve hesaplamaların bir kere yazılmasını ve tek satırla çağrılmasını sağladığı için kolaylık sağlar ve hata ihtimalini azaltır.&lt;br /&gt;//////////////KUTU//////////////&lt;br /&gt;include mu, require mı?&lt;br /&gt;PHP4.0 ile, include komutu gibi işleyen ancak ondan farklı olarak kendisini çağıran programa değer veremeyen require komutu da kullanılabilir hale geldi. İçinde bir hesaplama bulunmayan veya kendisini çağıran dosyaya bir return komutu ile bir değer dönmesini sağlaması beklenmeyen dosyaları require komutu ile de ana programımıza dahil edebiliriz.&lt;br /&gt;/////////////////KUTU BİTTİ//////////&lt;br /&gt;include ile alacağımız dosyaların adını PHP programının oluşturmasını sağlayarak kimi zaman pogramlarımıza dinamizm sağlamamız mümkündür. Sözgelimi bir menü maddesinin tıklanmasıyla harekete geçen bir Javascript fonksiyonunun, ziyaretçinin gideceği sayfaya göndereceği değeri include komutuna dosya adı oluşturmakta kullanabiliriz. Bazen include komutuna dosya adı oluşturmakta program içindeki döngülerden yararlanınız. Örnek:&lt;br /&gt;for ( $i = 1 ; $i &lt;= 3 ; ++$i) {&lt;br /&gt;	include ("dosya0" . $i . ".x");&lt;br /&gt;	}&lt;br /&gt;Haricî dosyalarımızın adlarının dosya01.x, dosya02.x ve dosya03.x olmalı halinde, bu döngü sırasıyla her üç dosyayı da çağıracak ve altalta ana programa dahil edecektir.&lt;br /&gt;Dosyalar hakkında bilgi&lt;br /&gt;PHP'de yukarıda ele aldığımız include ve require komutları ve biraz sonra değineceğimiz dosya okutma ve yazdırma işlemleri dolayısıyla bir dosyanın varlığı veya yokluğu, ya da bir dosyaya ait sandığımız ismin bid klasöre ait olması, programımızın sağlıklı işleyebilmesi açısından büyük önem taşır. PHP bu amaçla bize bir kaç kullanıma hazır fonksiyon sağlıyor. Burada kısaca bu fonksiyonlara ve nasıl kullanıldıklarına değinelim:&lt;br /&gt;Dosya var mı? file_exits()&lt;br /&gt;Bir dosyanın var olup olmadığını denetleyen bu fonksiyon, dosya varsa true/doğru, yoksa false/yanlış sonucunu verir. Örnek:&lt;br /&gt;if ( file_exits ( "bir_dosya.txt" ) )&lt;br /&gt;print ("Dosya var!");&lt;br /&gt;Dosya yoksa, program "Dosya var!" yazmadan yoluna devam edecektir.&lt;br /&gt;Dosya mı, dizin mi? is_file() ve is_dir()&lt;br /&gt;Kimi zaman klasörler de tıpkı dosyalar gibi adlandırılabilir. Bir dizinde gördüğümüz ismin gerçekten bir dosyaya ait olup olmadığını bu fonksiyonla sınarız. Sınama doğru, yani isim bir dosyaya ait ise fonksiyon true/doğru, değilse false/yanlış sonuç verir. Örnek:&lt;br /&gt;if ( is_file ( "bir_dosya.txt" ) )&lt;br /&gt;print ("Bu bir dosyadır!");&lt;br /&gt;İsim bir dosyaya ait değilse program "Bu bir dosyadır!" yazmadan yoluna devam edecektir. Sınamayı ismin bir klasöre ait ait olup olmadığına bakrarak da yaparız. Bu durumda is_dir() fonksiyonunu kullanırız. isim bir dizine aitse fonksiyon true/doğru, değilse false/yanlış sonuç verir. Örnek:&lt;br /&gt;if ( is_dir ( "/bir_isim" ) )&lt;br /&gt;print ("Bu bir dizindir!");&lt;br /&gt;İsim bir dizine ait değilse program "Bu bir dizindir!" yazmadan yoluna devam edecektir.&lt;br /&gt;Dosya okunabilir mi? is_readable()&lt;br /&gt;Programda kullanmaya karar vermeden önce bir dosyanın erişilebilir ve PHP tarafından okunabilir olup olmadığını sınayan bu fonksiyon, dosya okunabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:&lt;br /&gt;if ( is_readable ( "bir_dosya.txt" ) )&lt;br /&gt;print ("Bu dosya okunabilir!");&lt;br /&gt;Dosya okunabilir değilse program "Bu dosya okunabilir!" yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz her dosyanın okuma izni bulunmayabilir.)&lt;br /&gt;Dosya yazılabilir mi? is_writable()&lt;br /&gt;Programda kullanmaya karar vermeden önce bir dosyanın yazılabilir olup olmadığını sınayan bu fonksiyon, dosya yazılabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:&lt;br /&gt;if ( is_writable ( "bir_dosya.txt" ) )&lt;br /&gt;print ("Bu dosyaya yazılabilir!");&lt;br /&gt;Dosya yazılabilir değilse program "Bu dosyaya yazılabilir!" yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz hatta okuyabildiğimiz her dosyanın yazma izni bulunmayabilir.)&lt;br /&gt;Dosya çalıştırılabilir mi? is_executable()&lt;br /&gt;PHP programında kimi zaman sunucunun kullanmamıza izin verdiği haricî programları çalıştırız; PHP programımızın düzgün işlemesi bu harici programa bağlı olabilir. Böyle bir programı çalıştırmaya karar vermeden önce bir dosyanın çalıştırılabilir olup olmadığını sınayan bu fonksiyon, dosya çalıştırılabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:&lt;br /&gt;if ( is_executable ( "bir_dosya" ) )&lt;br /&gt;print ("Bu dosya çalıştırılabilir!");&lt;br /&gt;Dosya çalıştırılabilir bir program değilse PHP programı "Bu dosya çalıştırılabilir!" yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz her pprogram dosyasının çalıştırma izni bulunmayabilir.)&lt;br /&gt;Dosya boyutu: filesize()&lt;br /&gt;Adını verdiğimiz dosyanın boyutunu byte olarak bildirir: Örnek:&lt;br /&gt;print ("Dosyanın boyutu:");&lt;br /&gt;print filesize( "bir_dosya.txt" );&lt;br /&gt;Dosyaya son erişim tarihi: fileadate(), filemtime() ve filectime()&lt;br /&gt;Adını verdiğimiz dosyaya son erişim tarihini bildirir. ne var ki bu bilgi Unix'in "epoch" biçimindedir: Örnek:&lt;br /&gt;print ("Dosyanın son erişim tarihi:");&lt;br /&gt;$dosya_tarihi = fileadate( "bir_dosya.txt" );&lt;br /&gt;print ( " $dosya_tarihi " );&lt;br /&gt;Eğer bu dosyanın son erişim tarihi 28 Temmuz 2000, Cuma 24:00:00 ise, PHP, Browser penceresine 964731600 yazacaktır. Bu komutun ürettiği bilgiyi, date() fonksiyonu ile anlaşılabilir hale getirebiliriz:&lt;br /&gt;print ("Dosyanın son erişim tarihi:");&lt;br /&gt;$dosya_tarihi = fileadate( "bir_dosya.txt" );&lt;br /&gt;print date("D d M Y G:i:s H", $dosya_tarihi );&lt;br /&gt;Bu kez PHP Browser penceresine 28 Jul 2000 242:00:00 00  yazdıracaktır. Tarih verilerinin date() fonksiyonu ile biçimlendirilmesini daha sonra ayrıntılı ele alacağız.&lt;br /&gt;filemtime(), bir dosyanın son değiştirildiği tarihi; filectime(), ise oluşturulduğu tarihi, yine Unix Epoch biçiminde bildirir; bu verinin anlaşılır biçimde görüntülenmesi için PHP'nin date() fonksiyonu kullanılır.&lt;br /&gt;Dosyalar oluşturma ve silme&lt;br /&gt;PHP ile yapabileceğimiz önemli dosya işlemlerinin başında olmayan bir dosyayı oluşturmak ve olan bir dosyayı silmek gelir. PHP'nin dosya oluşturma komutu touch() fonksiyonudur. Bu fonksiyona oluşturulmasıın istediğimiz dosyanın adını vermemiz gerekir. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/inetpub/wwwroot/";&lt;br /&gt;		touch ("$dosya_dizin/yeni_belge.txt");&lt;br /&gt;print ("yeni_belge adlı bir dosya oluşturuldu!");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programı kişisel Web sunucuda denerken yeni dosyanın oluşturulacağı dizin olarak "/" işaretiyle sadece kökdizini belirtirseniz, dosya C: diskinde kökdizinde oluşturulur. Bu programı gerçek sunucuda çalıştırabilmek için yazma/okuma izni bulunan ve Web sunucunun erişebileceği bir dizinin adını vermeniz gerekir. Örneğin:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/wwwroot/mycgiserver.com/members/uNhM13Qnm/";&lt;br /&gt;touch ("$dosya_dizin/yeni_belge.txt");&lt;br /&gt;print ("yeni_belge adlı bir dosya oluşturuldu!");&lt;br /&gt;?&gt;&lt;br /&gt;Bu komutla oluşturacağınız dosya içi boş bir metin dosyası olacaktır. Eğer belirttiğiniz dizinde bu adı taşıyan bir dosya varsa, PHP dosyanın içeriğine dokunmayacak, fakat dosyanın erişim ve değişim tarihlerini  değiştirecektir.&lt;br /&gt;PHP ile mevcut bir dosyayı silmek için unlink() fonksiyonunu kullanırız. Bu fonksiyon da silinecek dosyanın adı ile birlikte yolunu ister. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/wwwroot/mycgiserver.com/members/uNhM13Qnm/";&lt;br /&gt;unlink ("$dosya_dizin/yeni_belge.txt");&lt;br /&gt;print ("yeni_belge adlı dosya silindi!");&lt;br /&gt;?&gt;&lt;br /&gt;Bu komut Windows sistemlerinde işlemeyebilir.&lt;br /&gt;Dosya açma&lt;br /&gt;PHP'de bir dosyanın içeriğini alarak sayfalarımızda kullanma veya bir dosyanın içeriğini değiştirmek gibi işlemler için önce dosyanın açılmış olması gerekir. Bunu gerçekleştiren fopen() fonksiyonudur. Bu fonksiyonla bir dosyayı okumak ('r'), yazdırmak ('w') veya ek yapmak ('a') için açabiliriz. Bu fonksiyon dosyanın başarıyla açılması halinde bir tamsayı verecektir. PHP programlarımızda, açılan dosyanın mutlata ona işaret eden bir değişkene (file pointer) bağlı olması gerekir; daha sonra bu dosya ile ilgili bütün işlemleri bu işaret değişkeni ile yaparız. Örnek:&lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'r' );&lt;br /&gt;PHP, bu dosyayı sadece okumak amacıyla açacak ve fonksiyondan dönen değeri $dosya değişkenine atayacaktır. Olmayan bir dosyayı açmak istediğimiz zaman PHP hata mesajı verir. Bir dosyayı yazmak amacıyla açacağımız zaman, bu kodu şöyle yazarız:&lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'w' );&lt;br /&gt;Olmayan bir dosyayı yazmak amacıyla açmak istediğimizde PHP önce bu dosyayı oluşturur. Bir dosyaya ek yapmak istediğimiz zaman ise kodumuz şu şekilde yazılır:&lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'a' );&lt;br /&gt;Olmayan bir dosyayı ek yapmak amacıyla açmak istediğimizde PHP hata mesajı verir.&lt;br /&gt;//////////////////KUTU///////////////&lt;br /&gt;Bir Fonksiyonu durdurmak için: Öl!&lt;br /&gt;Bir PHP fonksiyonunun kendisinden beklenen işi yapamaması halinde oracıkta durdurulmasını die() komutu sağlar. "Öl!" anlamına gelen bu fonksiyona ekranda görüntülenmesini istediğimiz bir metni parametre olarak verebiliriz. Bu bölümdeki örnekler bu komutla birlikte şöyle yazılabilir:&lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'a' ) or die ("Dosya açılamıyor!") ;&lt;br /&gt;////////////////////KUTU BİTTİ//////////////&lt;br /&gt;Bu komutu kişisel Web sunucusunda denerken, dosyanın açılacağı dizinin yolunu belirtmemiz gerekir. Örneğin:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/inetpub/wwwroot/";&lt;br /&gt;if ($dosya = (fopen ("$dosya_dizin/bir_dosya.txt" , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;PHP, bu dosyayı açtığında Browser penceresinde dosyanın açıldığını belirten mesajı görüntülecektir. Bu işlemi Internet'teki bir Web sunucuda uygulayabilmek için yazma/okuma izni bulunan ve Web sunucunun erişebileceği bir dizinin adını vermeniz gerekir. Örneğin:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/wwwroot/mycgiserver.com/members/uNhM13Qnm/";&lt;br /&gt;if ($dosya = (fopen ("$dosya_dizin/bir_dosya.txt" , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Açtığımız bir dosya ile yaptığımız bütün işlemler bittikten sonra, dosyanın kapatılması gerekir. Dosya kapatma işlemini fclose() fonksiyonu yapar. Bu fonksiyona parametre olarak dosya adını değil, dosyanın işaretçisi olan değişkenin adını veririz. Örnek:&lt;br /&gt;fclose  ( $dosya );&lt;br /&gt;Dosya okuma: fgets(), fread() ve fgetc()&lt;br /&gt;Açtığımız bir dosyanın içindeki yazıları çoğu zaman programımıza satır satır okuturuz. PHP'de bir dosyanın içeriğini satır satır okutmamızı fgets() fonksiyonu sağlar. Bu fonksiyona daha önce açılmış olan dosyanın işaret değişkenin adını ve okunmasını istediğimiz asgari byte ölçüsünü parametre olarak veririz. fgets() fonksiyonu verdiğimiz uzunluk ölçüsüne ulaşmadan önce dosyada bir yeni satır işareti görürse, veya dosyanın sonuna ulaşırsa, okumaya son verir. Bu fonksiyonu çoğu zaman bir döngünün içinde kullanırız. Ancak döngünün hata vermemesi için, PHP'nin dosyanın sonuna ulaştığında döngüyü durdurmamız gerekir. fgets() fonksiyonunun okuyacağı satırı bir fonksiyona değer olarak verebilir ve daha sonra bu değeri programlarımızda kullanabiliriz. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/inetpub/wwwroot/";&lt;br /&gt;if ($dosya = (fopen ("$dosya_dizin/bir_dosya.txt" , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;while ( ! feof  ($dosya ) ) {&lt;br /&gt;	$satir = fgets ( $dosya, 1024 ) ;&lt;br /&gt;	print ("$satir&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;Bu program kişisel Web sunucuda önce varolan bir dosyayı açıyor; ve bu dosyanın işaretçisi olarak $dosya değişkenini kullanıyor. Daha sonra bir while() döngüsü içinde  bu değişkeni ve 1 KB (1024 byte) ölçüsünü parametre olarak vererek fgets() fonksiyonu ile dosyadan bir satır okutuyoruz. fgets() fonksiyonundan dönen bir satırlık metni, burada $satir değişkenine atıyoruz; ve daha sonra print() fonksiyonu ile bu satırı Browser penceresine gönderiyoruz. Bu işlemi Internet'teki bir Web sunucuda uygulayabilmek için yazma/okuma izni bulunan ve Web sunucunun erişebileceği bir dizinin adını vermeniz gerekir. Bu işlemin içinde yapıldığı while() döngüsünün devam şartı olarak kullandığımız ifadede yer alan feof() fonksiyonu bir dosyanın dosya-sonu (end-of-file) durumuna ulaşıp ulaşmadığını sınar. PHP, her dosyanın sonunda yer alan eof  (Ctrl-z, ^z) işaretine eriştiği anda feof() fonksiyonu doğru/true değerini verir. while() döngüsü, feof() doğru değilken devam etmek üzere kurulmuş olduğu için, dosya sonuna ulaştığımızda döngü duracaktır. Okuma işlemini durabilen bir döngüye bağlamazsak, fgets() PHP'nin bir programın sona ermesi için verilmiş varsayılan süresi doluncaya kadar dosyayı okumak isteyecektir.&lt;br /&gt;Kimi zaman dosyalarımızın içeriğini satır-satır okutmak yerine, kendi tayin edeceğimiz uzunlakta parçalar halinde okutmak isteriz. Bunu, fread() fonksiyonu ile sağlarız. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_dizin = "/inetpub/wwwroot/";&lt;br /&gt;if ($dosya = (fopen ("$dosya_dizin/bir_dosya.txt" , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;while ( ! feof ($dosya) ) {&lt;br /&gt;	$paragraf = fread ( $dosya, 1024 ) ;&lt;br /&gt;	print ("$paragraf&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;fread() fonksiyonu da daha önce açılmış olan dosyanın işaret değişkenin adını ve okunmasını istediğimiz asgari byte ölçüsünü parametre olarak alır. fread() fonksiyonu verdiğimiz uzunluk ölçüsüne ulaşmadan önce dosyada bir yeni satır işareti görürse, veya dosyanın sonuna ulaşırsa, okumaya son verir. Bu fonksiyondan yararlanırken, verdiğiniz uzunluk ölçüsünün, almak istediğiniz metin parçasına uygun olduğunu sınamalısınız. fread(), bu ölçüye ulaştığında okumayı keser. Buradaki örneği 1024 byte ölçüsünü değiştirerek ve mesela 1, 2, 3 yaparak deneyebilir ve böylece vereceğiniz ölçünün okunan metnin uzunluğunu nasıl tayin ettiğini görebilirsiniz.&lt;br /&gt;//////////////////KUTU///////////////////&lt;br /&gt;fseek() ile ölçü belirleme&lt;br /&gt;PHP'nin dosya işleminde kullabileceğiniz bir diğer fonksiyonu fseek() adını taşır. Daha önce açılmış olan dosyanın işaret değişkenin adını ve ve programın bu metin içinde zıplamasını istediğiniz noktanın dosyanın başından itibaren byte değerini parametre olarak alan bu fonksiyon ile, bir dosyanın içinnde istediğimiz yere gitme imkanı vardır. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt";&lt;br /&gt;if ($dosya = (fopen ($dosya_adi , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;$dosya_boyut = filesize($dosya_adi);&lt;br /&gt;$olcu = (int) ($dosya_boyut / 2 );&lt;br /&gt;while ( ! feof ($dosya) ) {&lt;br /&gt;	$paragraf = fread ( $dosya, $olcu) ;&lt;br /&gt;	print ("$paragraf&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;Burada, okutulacak dosyanın boyutunun yarısını atadığımız $olcu değişkenini, okutulacak metnin ölçüsü olarak kullanıyoruz. Bu durumda PHP, dosyayı iki paragraf halinde görüntüleyecektir.&lt;br /&gt;/////////////////////KUTU BİTTİ///////////////&lt;br /&gt;Dosyalarımızın içeriğini satırlar veya belirli ölçüde parçalar halinde değil de, tek-tek karakter olarak okutmak için fgetc() fonksiyonundan yararlanırız. Bu fonksiyon, daima 1 byte ölçüsünde (bir karakter) metin okuyabileceği için, parametre olarak sadece daha önce açılmış olan dosyanın işaret değişkenin adını alır. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt";&lt;br /&gt;if ($dosya = (fopen ($dosya_adi , 'r') ) ) {&lt;br /&gt;	print ("Dosya açıldı!&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Dosya açılamadı!");&lt;br /&gt;	}&lt;br /&gt;while ( ! feof ($dosya) ) {&lt;br /&gt;	$karakter = fgetc ( $dosya ) ;&lt;br /&gt;	print ("$karakter&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;Burada fgetc() fonksiyonundan dönen değeri (yani dosyadan okunan bir karakteri), $karakter değişkenine atıyoruz ve daha sonra print() fonksiyonu ba karakteri  ve HTML'in satır bölme kodu olan &lt;br&gt; işaretini Browser penceresine gönderiyor. Programı bu şekliyle sınarsanız, dosyadaki metnin tek karakter olarak Browser penceresinin soluna dizildiğini göreceksiniz. Programı &lt;br&gt; kodunu silerek çalıştırırsanız, bu kez dosyadaki metinde var olan satır sonu işaretlerinin de kaldırıldığını ve metnin bir paragraf oülarak görüntülendiğıini görebilirsiniz.&lt;br /&gt;Dosyaya yazma ve ek yapma: fwrite() ve fputs()&lt;br /&gt;Bir dosyaya yazma veya ek yapma, PHP açısından aynı işlemdir; sadece dosyaların açılışında fark vardır. Hatırlayacaksınız, bir dosyayı yazmak amacıyla açmak için:&lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'w' ) or die ("Dosya açılamıyor!") ;&lt;br /&gt;ek amacıyla açmak için ise &lt;br /&gt;$dosya = fopen( "bir_dosya.txt" , 'a' ) or die ("Dosya açılamıyor!") ;&lt;br /&gt;kodunu yazmamız gerekir. Dana sonra yapılacak yazma ve ekleme işlemlerinin farkı, 'w' parametresi ile açılan dosyaya yazma işlemi en başından başlar ve devam eder; 'a' parametresi  ile açaılan dosyaya yazma işlemi ise en sondan başlar ve devam eder.&lt;br /&gt;PHP'nin bir dosyaya metin yazdırma fonksiyonları olan fwrite() ve fputs() aynı biçimde yazılır ve aynı işlevi yerine getirirler; aralarında kesinlikle fark yoktur. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt";&lt;br /&gt;$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");&lt;br /&gt;$metin = "Bu satır dosyaya yazılacak: Merhaba Dünya!\n";	&lt;br /&gt;fwrite ( $dosya , $metin ) ;&lt;br /&gt;fputs ( $dosya , "Bu satır ise sonradan eklenecek\n" ) ;&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;Bu programı çalıştırdığınızda, bir_dosya.txt adlı dosyada mevcut bütün içerik silenecek ve yerini $metin değişkeninin içerdiği "Bu satır dosyaya yazılacak: Merhaba Dünya!" yazısı ile "Bu satır ise sonradan eklenecek" cümlesi alacaktır. Her iki metnin sonunda da yeni satır işareti bulunduğuna dikkat edin. Bu programda dosya açma kıomutundaki 'w' parametresini siler, yerine 'a' yazarsanız, bu metinlerin dosyanın içeriğine eklendiğini görebilirsiniz.&lt;br /&gt;/////////////////////KUTU///////////////////&lt;br /&gt;Kullanımdaki dosyayı kilitleyin!&lt;br /&gt;Web sunucusundaki dosyalarımızla sadece bir kişi işlem yapıyor olsa idi, bir sorun olmazdı; ne var ki, bir Web sitesine aynı anda birden fazla kişi eriyebilir ve dosyalarla işlem yapan programları çalıştırıyor olabilir. Bu, PHP'nin dosya işlemlerine engel olabilir. Bu sebeple, işlem için açacağımız bir dosyayı, önce kilitlemek yerinde bir önlem sayılır. Bunu, flock() fonsiyonu ile yaparız; bu fonksiyona kilitlemek istediğimiz dosyanın işaret değişkeninin adını ve kilit türünü belirten endeks sayısını parametre olarak yazarız. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt";&lt;br /&gt;$dosya = fopen ($dosya_adi , 'w') or die ("Dosya açılamadı!");&lt;br /&gt;flock ( $dosya , 2); // dosyayı kilitle&lt;br /&gt;$metin = "Bu satır dosyaya yazılacak: Merhaba Dünya!\n";	&lt;br /&gt;fwrite ( $dosya , $metin ) ;&lt;br /&gt;fputs ( $dosya , "Bu satır ise sonradan eklenecek\n" ) ;&lt;br /&gt;flock ( $dosya , 3); //dosyayı kilidini aç&lt;br /&gt;fclose ($dosya); &lt;br /&gt;?&gt;&lt;br /&gt;Bu fonksiyon ile kullanabileceğimiz endeks parametreleri şunlardır:&lt;br /&gt;1	Paylaşım	Diğer proseslerin dosyayı paylaşmalarına imkan verir&lt;br /&gt;2	Tam	Diğer proseslerin dosyaile işlem yapmasına engel olur&lt;br /&gt;3	Serbest	Dosyanın 1 veya 2 olan kilidini kaldırır&lt;br /&gt;Bir dosya, herhangi bir PHP programı tarafından kilitlendiği anda, aynı dsyayı daha sonra kilitlemeye kalkan diğer programlar kendilerinden önce konulmuş kilide  saygı gösterirler.&lt;br /&gt;////////////////KUTU BİTTİ/////////////////////&lt;br /&gt;Dizinlerle İşlemler&lt;br /&gt;PHP ile sunucuda, Web dizini olarak kullandığımız alanda yeni dizinler oluşturabiliriz, silebiliriz, ve bunlar hakkında bilgi edinebiliriz. Bu işlemleri Web sunucuda yapabilmek için Web dizininde okuma ve yazma izni bulunması gerekir.&lt;br /&gt;Dizin içeriğini listeleme: opendir() ve readdir()&lt;br /&gt;Belirttiğiniz bir dizindeki tüm dosya ve alt-dizin adlarını bir liste, hatta ilişkilendirilmiş hypertext (köprü, link) listesi olarak sunabilmek için önce dizini içeriğini okuyabilmek için opendir() fonksiyonu ile açmak, sonra da içindeki bilgileri readdir() fonksiyonu ile edinmek gerekir. readdir() fonksiyonu dizinin içindeki alt-dizin ve dosyaların adlarını sırayla, tek-tek okur. Bu fonksiyondan gelen bilgileri bir değişkene atayarak ve bir döngü içinde yazdırarak, dizin listesi çıkartabiliriz. Örnek&lt;br /&gt;&lt;?php&lt;br /&gt;$dizin_adi = "./";&lt;br /&gt;$dizin = opendir ($dizin_adi);&lt;br /&gt;while ( gettype ( $bilgi =  readdir( $dizin ) ) != boolean ) {&lt;br /&gt;	if ( is_dir( "$dizin_adi/$bilgi" ) )&lt;br /&gt;	print " [Dizin] " ;&lt;br /&gt;	print ("&lt;A href=\"$dizin_adi/$bilgi\"&gt;$bilgi&lt;/A&gt;&lt;br&gt;\n");&lt;br /&gt;}&lt;br /&gt;closedir ($dizin);&lt;br /&gt;?&gt;&lt;br /&gt;Kişisel Web sunucuda sınama amacıyla çalıştırabilmek için dizin adı olarak bu dosyanın içinde bulunduğu dizini verebiliriz. opendir() fonksiyonu da okunmak amacıyla açacağı dizine işaret eden bilgiyi bir değişkene yazmak zorundadır; bu işaret değişkenine burada $dizin adını veriyoruz. $dizin değişkeninin işaret ettiği dizini okuyan readdir() fonksiyonundan dönen bilgileri ise $bilgi değişkenine yazıyoruz. readdir() fonksiyonu dizin bilgisini okumanının sonuna vardığında, bir dosya ve dizin adı yerine doğru veya yanlış şeklinde bir mantıksal (boolean) değer verecektir; buradaki while döngüsü $bilgi değişkeninin türünü gettype() fonksiyonu ile sürekli sınayarak, henüz dizin ve dosya adı edinildiği sırada bu bilgileri print() fonksiyonuna verecektir. Bu bilginin bir dizine ait olup olmadığını is_dir() fonksiyonu ile sınayan if döngüsü ise bilgi bir dizine aitse, bu bilgnin baştarafına "[Dizin]" kelimesini yazdıracaktır. (Bu programı geliştirerek, önce dizinleri, sonra dosyaları yazabilen biçime getirmek mümkündür. Bunun bir örneği bu kitapçığı örnek kod dosyaları arasında dizin_oku01a_server.php ve dizin_oku01a_pws.php aadıyla bulhabilirsiniz.)&lt;br /&gt;Dizin oluşturma: mkdir()&lt;br /&gt;PHP programlarımız gerektiğinde sunucunun yazma yetkisi verdiği Web'e açık kök ve alt-dizinlerde yeni dizinler oluşturabilir. Bunu, mkdir() fonksiyonu ile yaparız. Bu fonksiyona oluşturulacak dizinin adı ve 8 tabanlı (octal) sayı cinsinden ve önüne bir sıfır konarak dizinin okuma/yazma/çalıştırma izinlerini belirten parametre verilir. Örnek:&lt;br /&gt;mkdir ("deneme", 0777);&lt;br /&gt;Burada yer alan 0777, bu dizinin herkes için okuma ve yazma izni olduğunu gösterir. Bu parametre sadece Unix işletim sisteminde çalışan sunucular için geçerlidir.&lt;br /&gt;Dizin silme: rmdir()&lt;br /&gt;PHP programlarımızda gerektiğinde sunucunun yazma yetkisi verdiği Web'e açık kök ve alt-dizinlerde mevcut dizinleri silebiliriz. Bunu, rmdir() fonksiyonu ile yaparız. Bu fonksiyona oluşturulacak dizinin adı parametre verilir. Örnek:&lt;br /&gt;rmdir ("deneme");&lt;br /&gt;Bir Dosya İşlemi Örneği: Konuk Defteri&lt;br /&gt;Böylece PHP ile "iş yapmak" için gerekli araçlarımıza bir yenisini ekledik. Artık PHP programlarımızdan sabit diskteki dosyalara ulaşmayı ve dosyalarla çalışmayı biliyoruz. Buraya kadar öğrendiklerimizi bir PHP programı üzerinde uygulayabiliriz. Bunun için birlikte bir konuk defteri yapalım.&lt;br /&gt;Diyelim ki konuk defterimize sadeceziyaretçimizin adını, elektronik posta adresini ve kısa bir mesajını isteyeceğiz. Öyle bir sayfa yapalım ki; ziyaretçi bu sayfayı ilk kez açtığında, yani henüz Form'dan sunucuya bir veri gelmemiş dolayısıyla $HTTP_POST_VARS dizi değişkenin içinde değer bulunmadığı sırada, programımız bu durumu belirleyerek ziyaretçiye konuk defteri Form'nu sunmalı; ziyaretçi formu doldurup gönder düğmesini tıkladığı zaman programımız bir yandan ziyaretçinin gönderdiği bilgileri kendisine gösterir ve teşekkürlerimizi aktarırken, diğer yandan da bu bilgileri bir düzyazı programı girmeli. Bu sırada ziyaretçimize isterse defterimizdeki diğer mesajları okuma imkanı da sunabilmeliyiz. Biraz uzunca olan şu programı kd_01.php adıyla kaydedelim. (Bu dosyayı, kitapçığın örnek kodlar arasında bulabilirsiniz; fakat bu alıştırmayı bir düz yazı programı ile buradaki örnek ifadeler ve alan/değişken adlarını değiştirerek tekrar etmeniz yerine olur:&lt;br /&gt;&lt;?php&lt;br /&gt;if ( isset ( $HTTP_POST_VARS )) {&lt;br /&gt;// Form dolduruldmuş ise&lt;br /&gt;echo ("&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;HEAD&gt;&lt;br /&gt;	&lt;TITLE&gt;PHP'de Misafir Defteri&lt;/TITLE&gt;&lt;br /&gt;	&lt;meta http-equiv='content-type' content='text/html; charset=ISO-8859-9'&gt;&lt;br /&gt;	&lt;meta http-equiv='Content-Type' content='text/html; charset=windows-1254'&gt;&lt;br /&gt;	&lt;/HEAD&gt;&lt;br /&gt;	&lt;BODY&gt;&lt;br /&gt;	&lt;P&gt;&lt;font size='3' class='s4' face='Arial, Helvetica'&gt;&lt;br /&gt;	");&lt;br /&gt;Programımızın buraya kadar olan bölümü, if ile  $HTTP_POST_VARS dizi değişkeninde değer bulunup bulunmadığına ilişkin sınamanın olumlu sonuç vermesi halinde uygulanan bölümüne dahil. Burada dikkatini echo() fonksiyonu ile birden fazla satır yazdırdığımız çekmiş olmalı. echo(), fonksiyonuna Browser penceresine göndereceğimiz değerleri çift-tırnak içinde  yazacağımız için, HTML etiketlerinin çift-tırnak gerektiren etiketlerinde tek tırnak kullandığımıza dikkat edin. if sınavının olumlu sonucuna ilişkin bölümü yazmaya devam edelim:&lt;br /&gt;$dosya_adi = "mesajlar.txt";&lt;br /&gt;if (file_exists("$dosya_adi")) {&lt;br /&gt;	$yazilacak_dosya = fopen($dosya_adi,'a');&lt;br /&gt;	}&lt;br /&gt;else {&lt;br /&gt;	$yazilacak_dosya = fopen($dosya_adi,'w');&lt;br /&gt;	}&lt;br /&gt;foreach ($HTTP_POST_VARS as $anahtar=&gt;$deger ) {&lt;br /&gt;			$yeni_anahtar = strtoupper($anahtar);&lt;br /&gt;			print ("$yeni_anahtar: $deger&lt;br&gt;");&lt;br /&gt;			$metin = "$yeni_anahtar: $deger&lt;br&gt;";&lt;br /&gt;			fputs($yazilacak_dosya, $metin);&lt;br /&gt;			}&lt;br /&gt;			fputs($yazilacak_dosya, date("D d M Y h:i:s"));&lt;br /&gt;			fputs($yazilacak_dosya, "&lt;br&gt;\n");&lt;br /&gt;			fputs($yazilacak_dosya, "&lt;center&gt;&lt;br /&gt;			&lt;img src='nokta.gif' width=100% height=1 border=0&gt;&lt;/center&gt;\n");&lt;br /&gt;fclose($yazilacak_dosya);&lt;br /&gt;Konuk defteri programımızHTML için gerekli temel etiketleri ürettikten sonra bu bölümde veritabanı dosyası olarak kullandığımız mesajlar.txt isimli dosyanın bulunup bulunmadığını sınıyor; dosya varsa ek yapmak için ('a'),dosya yoksa yazmak için ('w'), dosyayı açıyoruz. Sonra, $HTTP_POST_VARS dizi-değişkenine Form'dan gelmiş olan anahtar=değer çiftlerinin her birini (yani, Browser'dan gelen örneğin "adi" değişkeni ve bunun değeri olan ismi) önce print() ile ziyaretçinin Browser'ına, sonra da fputs() ile biraz önce açtığımız veritabanı dosyasına yazdırıyoruz. Fakat burada bundan önce Form'dan küçük harf olarak gelen değişken adlarını (anahtarları) strtoupper() fonksiyonu ile büyük harfe çeviriyoruz.Şimdilik bu fonksiyonun üzerinde durmayın; biraz sonra metin düzenleme ve düzenli ifadeler konusuna geleceğiz. Ancak bu sırada ziyaretçilerin mesajlarını daha sonra güzel görüntelemek için aralarına çizgi olarak kullanmak üzere bir resim dosyasını IMG etiketi ile yerleştirdiğimize de dikkat edin. Bu grafik dısyasının eni-boyu 1 piksel olduğu halde burada ziyaretçinin Browser penceresinin eni kadar genişleterek çizgi üretmiş oluyoruz! Evet, koda devam:&lt;br /&gt;echo ("&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;HEAD&gt;&lt;br /&gt;	&lt;TITLE&gt;PHP'de Misafir defteri&lt;/TITLE&gt;&lt;br /&gt;	&lt;meta http-equiv='"content-type' content='text/html; charset=ISO-8859-9'&gt;&lt;br /&gt;	&lt;meta http-equiv='Content-Type' content='text/html; charset=windows-1254'&gt;&lt;br /&gt;	&lt;/HEAD&gt;&lt;br /&gt;	&lt;BODY&gt;&lt;br /&gt;	&lt;P&gt;&lt;font size='3' class='s4' face='Arial, Helvetica'&gt;&lt;br /&gt;	&lt;center&gt;&lt;img src='nokta.gif' width=100% height=1 border=0&gt;&lt;/center&gt;&lt;br /&gt;	Sayın: $adi&lt;br&gt;&lt;br /&gt;	Defterimi imzaladığınız için teşekkür ederim&lt;/P&gt;&lt;br /&gt;	&lt;p&gt;Ana Sayfaya Dönmek için &lt;A HREF=\"index.htm\"&gt; tıklayın&lt;/A&gt;&lt;BR&gt;&lt;br /&gt;	Mesajları okumak için&lt;A HREF=\"mesajlar.php\"&gt; tıklayın&lt;/A&gt;&lt;br /&gt;	&lt;/BODY&gt;&lt;br /&gt;	&lt;/HTML&gt;&lt;br /&gt;	");&lt;br /&gt;}&lt;br /&gt;Programımızın bu bölümünde, ziyaretçiye teşekkür ediyoruz; ve isterse diğer mesajları okumak üzere tıkllayacağı köprüyü sağlıyoruz. Mesajların çok uzaması halinde bu köprüyü bir sayfanın üstünde, bir de altında vermekte yarar var. Şimdi, programımızın Form doldurulduktan sonra işleyen bölümünü yazmış olduk. Taa en başta yaptığımız  $HTTP_POST_VARS dizi-değişkeninin değer içerip içermediğine ilişkin sınamanın olumsuz olması halinde, prıogramımız, işe buradan başlayacaktır:&lt;br /&gt;else {&lt;br /&gt;	echo ("&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;HEAD&gt;&lt;br /&gt;	&lt;TITLE&gt;PHP'de Formlar&lt;/TITLE&gt;&lt;br /&gt;	&lt;meta http-equiv='"content-type' content='text/html; charset=ISO-8859-9'&gt;&lt;br /&gt;	&lt;meta http-equiv='Content-Type' content='text/html; charset=windows-1254'&gt;&lt;br /&gt;	&lt;/HEAD&gt;&lt;br /&gt;	&lt;BODY&gt;&lt;br /&gt;	&lt;FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\"&gt;&lt;br /&gt;	&lt;P&gt;&lt;font size='3' face='verdana, Arial, Helvetica'&gt;&lt;br /&gt;	Defteri imzalamadan okumak için &lt;a href='mesajlar.php'&gt;&lt;br /&gt;	burayı tıklayın&lt;/a&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;br /&gt;	&lt;P&gt;&lt;font size='3' face='Arial, Helvetica'&gt;&lt;br /&gt;	Adınız, Soyadınız: &lt;br&gt;&lt;INPUT TYPE=\"TEXT\" NAME=\"adi\"&gt;&lt;BR&gt;&lt;br /&gt;	Elektronik Adresiniz: &lt;br&gt;&lt;INPUT TYPE=\"TEXT\" NAME=\"adres\"&gt;&lt;BR&gt;&lt;br /&gt;	Mesajınız:&lt;BR&gt;&lt;br /&gt;	&lt;TEXTAREA NAME=\"mesaj\" ROWS=10 COLS=30 WRAP=virtual&gt;&lt;/TEXTAREA&gt;&lt;br /&gt;	&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;br /&gt;	&lt;INPUT TYPE=\"SUBMIT\" VALUE=\"Defteri imzala!\"&gt; &lt;br /&gt;	&lt;INPUT TYPE=\"RESET\" VALUE=\"Tümünü sil!\"&gt;&lt;br /&gt;	&lt;/FORM&gt;&lt;br /&gt;	&lt;/BODY&gt;&lt;br /&gt;	&lt;/HTML&gt;&lt;br /&gt;	");&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;Bu bölümde çift-tırnak işaretlerini değiştirmek yerine, bunları ESC karakteri ile özel işaret değil, metin olarak ele alınacak hale getirdik. Programımız burada yine echo() ile düz ve basit bir HTML Formu oluşturuyor. Programın akış planını anlamış olmalısınız: ziyaretçi önce Form'u dolduracak ve gönder düğmesini tıklayacak.&lt;br /&gt;&lt;php00029.tif&gt;&lt;br /&gt;Bu ACTION, Form'da INPUT alanlarındaki değerleri POST yöntemiyle yine kendisine gönderecek; böylece PHP, programı yeniden çalıştırırken, bu kez en baştaki şartın yerine geldiğini (yani $HTTP_POST_VARS dizi-değişkeninin değer içerip içermediğine ilişkin sınamanın olumlu sonuç verdiğini) görerek, işe baştan baştan başlayacaktır. Bu, INPUT etiketinin alanlarından oluşturulan değişkenlerden yararlanarak, ziyaretçiye bize ulaştırdığı bilgileri ve bizim teşekkür mesajımızı yollamaktan ibarettir. &lt;br /&gt;&lt;php00030.tif&gt;&lt;br /&gt;Program bu şekliyle ne güvenlik önlemlerine sahip, yani kötüniyetli kişilerin INPUT alanlarına kötü niyetli kodlar yazmaları halinde bunları ayıklıyor; ne de ziyaretçinin boş Form gönderip göndermediğini sınıyor. Bu gibi işleri, PHP ile metin düzenlemeyi öğrendikten ve Düzenli İfadeler denen kavramı ile tanıştıktan sonra yapacağız.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-3186895202660719865?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/3186895202660719865/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=3186895202660719865' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/3186895202660719865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/3186895202660719865'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-de-dosya-ilemleri-dosya-ilemleri.html' title='PHp de dosya işlemleri Dosya İşlemleri phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-8349476697888800216</id><published>2008-03-08T04:39:00.001-08:00</published><updated>2008-10-13T13:10:24.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Dizi-Değişkenler'/><title type='text'>Dizi-Değişkenler, Nesneler  phpprogramlama</title><content type='html'>&lt;strong&gt;Dizi-Değişkenler, Nesneler&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PHP'de, diğer programlama dillerinde olduğu gibi, kullandığımız bilgileri, verileri değişken adını verdiğimiz kaplarda tuttuğumuzu biliyoruz. Bu kaplarla ne işler yapabileceğimizi de gördük. Fakat bu kapların sadece bir birim bilgi tuttuğunu farketmiş olmalısınız. Oysa programlarımızda genellikle, sözgelimi "öğrencilerin adları" dediğimiz zaman yüzlerce ismi tutabilen kaplara ihtiyacımız olur. Aksi taktirde, öğrenci sayısı kadar değişken oluşturmamız gerekir ki, bu durumda değişken oluşturma zahmetinden vazgeçmek daha uygun olur; öğrencilerin isimleri, değişkene koymadan da kullanabiliriz. İşte, bu tür, bir grup bilgili topluca tutan değişkenlere dizi-değişken (array) denir; ve program boyunca işe yarayan değişken türü de budur. &lt;br /&gt;PHP'nin diğer bir çok dilden farkını sağlayan bir özelliği, büyük ölçüde dizi değişkenlere dayanan, içinde kendi değişkenleri ve kendi fonksiyonları olan nesne (object) oluşturma imkanına sahip bulunmasıdır. Bu açıdan PHP, nesne-yönelimli (Object-oriented) diller grubuna girer. Nesne oluşturmak ve kullanmak, bu yönteme alışık olmayan programcılar için önceleri çok zor görünür. Ancak bir kere nesne ile programlamanın özünü kavrayanların bir daha kolay kolay nesne fikrinden vazgeçtikleri de görülmemiştir. &lt;br /&gt;Dizi Değişkenler&lt;br /&gt;Dizi değişkenden ayrıntılı söz edebilmek için önce tipik bir dizi-değişkende neler olduğuna bakalım. Sözgelimi, verdiğiniz "PHP ile Programlama" kursundaki öğrencilerinizin listesi şöyle olabilir:&lt;br /&gt;Öğrenci No	Adı	Soyadı	Sınav-1	Sınav-2	Not&lt;br /&gt;1	Özbay	Altun	..	..	..&lt;br /&gt;2	Muharrem	Taç	.. 	..	..&lt;br /&gt;3	Erhan	Mataracı	.. 	..	..&lt;br /&gt;4	Hasan	Civelek	.. 	..	..&lt;br /&gt;5	Şahika	Tabak	.. 	..	..&lt;br /&gt;Dizi Değişken Oluşturalım&lt;br /&gt;Şimdi, PHP bize öyle bir araç vermeli ki, biz bir kerede bu listenin tümünü, her bir ögesine sanki bir değişkenin değeri imiş gibi tek-tek, veya bir kaçına birden ulaşabilmeli ve arzu ettiğimiz zaman notları doldurabilmeliyiz. Öğrenciler de yapacağımız Web sitesine girerek, kendi notlarını görebilmeli ve notlarını inceleyebilmeli. PHP'nin bu amaçla sağladığı araç, çok-boyutlu dizi-değişken oluşturma aracıdır. Ve bu araçla yukarıdaki listeyi aynen şöyle yapabiliriz. Bu kodu dizi_degiskenler01.php adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Degiskenler&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H2&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;$ogrenciler = array (&lt;br /&gt;array ( adi =&gt; "Özbay", soyadi =&gt; "Altun", sinav1 =&gt;"", sinav2 =&gt;"", not =&gt;""),&lt;br /&gt;array ( adi =&gt; "Muharrem", soyadi =&gt; "Taç", sinav1 =&gt;"", sinav2 =&gt;"", not =&gt;""),&lt;br /&gt;array ( adi =&gt; "Hasan", soyadi =&gt; "Civelek", sinav1 =&gt;"", sinav2 =&gt;"", not =&gt;""),&lt;br /&gt;array ( adi =&gt; "Şahika", soyadi =&gt; "Tabak", sinav1 =&gt;"", sinav2 =&gt;"", not =&gt;""),&lt;br /&gt;);&lt;br /&gt;// Buraya başka kodlar girecek&lt;br /&gt;print $ogrenciler[0][adi];&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H2&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Programdaki "print()" komutunu sadece dizi değişkeni doğru yazıp yazmadığımızı sınamak amacıyla yazdık; bu programı Browser'da açtığınızda yazdığınız ilk ismi Browser penceresinde görüyorsanız, dizi-değişkeni doğru şekilde oluşturdunuz demektir. Burada, array() komutnu yazarken, süslü parantez değil, normal parantez kullandığımıza ve herbir elemanın değerlerinin sonunda vrigül olduğuna dikkat edir. Bir diğer önemli nokta: endeks adları bir kelimeden fazla ise bunları tırnak içine alarak belirtmektir. Örneğin:&lt;br /&gt;array ( adi =&gt; "Özbay", soyadi =&gt; "Altun", "Sinav 1 Notları" =&gt;"", "Sinav 2 Notları" =&gt;"", "Toplam Not Ortalamasi" =&gt;""),&lt;br /&gt;Burada, daha öncekilere benzer bir şekilde adlandırılmış $ogrenciler değişkenin içeriğini array() komutu ile doldurduğumuzu görüyoruz. Array() ile böyle çok boyutlu ve içerdiği değerlerin her birinin bir "endeks adı" olan dizi-değişkene İlişkili Dizi (Associative array) de denir. Perl bilenler ise bu tür değişkenlere "Hash" dendiğini hatırlayacaklardır. İlişkili Dizi'lerin birinci satırı 0, ikinci satırı 1, üçüncü satırı 2.. diye numaralandırılır. Bu dizinin o satırındaki kaydın sıra endeksidir. Ayrıca burada "adi," "soyadi," "sinav1" .. dizi değişkenin içindeki değerlerin endeks adıdır. Yani bu değerlere atıfta bulunurken, referans yaparken veya bu değerleriekullanmak amacıyla erişirken sıra endeksi ve endeks adıyla hitabederiz. Yukarıdaki sınama amaçlı print() komutuna bakarsanız, birinci öğrencinin ismini "[0][adi]" olarak çağırıyor.&lt;br /&gt;Çok elemanlı ilişkili dizi oluşturmanın bir diğer yolu, yeri geldiğinde böyle bir dizi için yeni bir üye ilgili bilgileri eleman endeksi ve değerler için endeks adı belirterek şöyle bir kod yazmaktan ibarettir. dizi_degiskenler01.php dosyasında şu değişikliği yaparak, dizi_degiskenler02.php adıyla kaydedin&lt;br /&gt;&lt;?php&lt;br /&gt;		$ogrenciler[0][adi] = "Özbay";&lt;br /&gt;		$ogrenciler[0][soyadi] = "Altun";&lt;br /&gt;		$ogrenciler[0][sinav1] = "";&lt;br /&gt;		$ogrenciler[0][sinav2] = "";&lt;br /&gt;		$ogrenciler[0][not] = "";&lt;br /&gt;// Buraya Buraya başka kodlar girecek&lt;br /&gt;		print $ogrenciler[0][adi];&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;Bir dizi değişkende kaç boyut olacaksa, o kadar içiçe array() ögesi oluşturabiliriz. Buna göre tek boyutlu bir dizi değişken sadece bir array() komutu ile ve sadece değerler verilerek oluşturulabilir. Diyelim ki yukarıdaki öğrenci listemiz sadece öğrencilerin isimlerinden oluşacak. Bu durumda $ogrenciler değişkenine ilişkin satırı şöyle yazabilirdik:&lt;br /&gt;$ogrenciler = array ("Özbay", "Muharrem", "Hasan", "Şahika");&lt;br /&gt;PHP, böyle tek boyutlu bir dizinin örneğin birinci elemanını, "$ogrenciler[0]" adıyla bilir. Böyle bir tek-boyutlu diziyi oluşturmak için PHP bize başka bir kolaylık da sağlar: array() komutunu kullanmadan,  doğruca dizinin ögelerine değer vermemiz mümkündür. Yukarıdaki programın sadece PHP bölümünü şöyle değiştirerek, dizi_degiskenler03.php adıyla kaydedin:&lt;br /&gt;&lt;?php&lt;br /&gt;		$ogrenciler[] = "Özbay";&lt;br /&gt;		$ogrenciler[] = "Muharrem";&lt;br /&gt;		$ogrenciler[] = "Hasan";&lt;br /&gt;		$ogrenciler[] = "Şahika";&lt;br /&gt;// Buraya başka kodlar girecek&lt;br /&gt;	print $ogrenciler[0];&lt;br /&gt;?&gt;&lt;br /&gt;Böyle sırayla dizi değişken oluşturur veya oluşturulmuş bir dizi değişkene ek yaparken, değişkenin sıra numarasını yazmazsak, PHP bunları kendisi sıralar. Yukarıdaki kodun da Browser penceresine "Özbay" yazdırması gerekir. Mevcut tek-boyutlu bir dizi değişkene ek yaptığımızda, be yeni değerin dizinin en altına eklenmesini istiyorsak, sıra numarası yazmamıza gerek yoktur. Mevcut değerlerden birini değiştirmek istiyorsak, o değerin sıra numarasını yazmamız gerekir. Bunu denemek için yukarıdaki kodu şöyle değiştirilim ve dizi_degiskenler04.php adıyla kaydedelim:&lt;br /&gt;&lt;?php&lt;br /&gt;		$ogrenciler[] = "Özbay";&lt;br /&gt;		$ogrenciler[] = "Muharrem";&lt;br /&gt;		$ogrenciler[] = "Hasan";&lt;br /&gt;		$ogrenciler[] = "Şahika";&lt;br /&gt;// Buraya başka kodlar girecek&lt;br /&gt;		$ogrenciler[0] = "Emre";&lt;br /&gt;		$ogrenciler[15] = "Özbay";&lt;br /&gt;&lt;br /&gt;	print ("Dizideki 1'nci isim: $ogrenciler[0] &lt;br&gt;");&lt;br /&gt;	print ("Dizideki 2'nci isim: $ogrenciler[1] &lt;br&gt;");&lt;br /&gt;	print ("Dizideki 3'ünci isim: $ogrenciler[2] &lt;br&gt;");&lt;br /&gt;	print ("Dizideki 4'üncü isim: $ogrenciler[3] &lt;br&gt;");&lt;br /&gt;	print ("Dizideki 5'inci isim: $ogrenciler[4] &lt;br&gt;");&lt;br /&gt;	print ("Dizideki 6'ncı isim: $ogrenciler[5] &lt;br&gt;");&lt;br /&gt;	print ("..............&lt;br&gt;");&lt;br /&gt;	print ("Dizideki 15'nci isim: $ogrenciler[15] &lt;br&gt;");&lt;br /&gt;	&lt;br /&gt;?&gt;&lt;br /&gt;Bu programın Browser penceresine göndereceği sırada, birinci öğrenci ($ogrenci[0]) olarak bu kez Özbay değil Emre yazdığını göreceğiz.&lt;br /&gt;&lt;php00017.tif&gt;&lt;br /&gt;Bunun sebebi, diziyi oluşturan ilk grup deyimden sonra, &lt;br /&gt;		$ogrenciler[0] = "Emre";&lt;br /&gt;satırı ile birinci elemanın değerini değiştirmiş olduk. 15'nci elemana atama yapmakla, PHP'nin $ogrenciler dizisinde 6, 7, 8, 9,.. 14'e kadar boş elemanlar oluşturmasına sebep olduk.&lt;br /&gt;Tek boyutlu dizileri de İlişkili Dizi olarak oluşturabilir yani değerlere endeks adı verebiliriz. Daha önce kaydettiğimiz dosyada şu değişikliği yapalım ve dizi_degiskenler05.php adıyla kaydedelim:&lt;br /&gt;&lt;?php&lt;br /&gt;	$ogrenci[adi] = "Özbay";&lt;br /&gt;	$ogrenci[soyadi] = "Altun";&lt;br /&gt;	$ogrenci[sinav1] = "";&lt;br /&gt;	$ogrenci[sinav2] = "";&lt;br /&gt;	$ogrenci[not] = "";&lt;br /&gt;// Buraya başka kodlar girecek&lt;br /&gt;	print $ogrenci[adi];&lt;br /&gt;?&gt;&lt;br /&gt;PHP, $ogrenci adlı değişkenin beş ayrı değeri olduğunu ve bunların "adi," "soyadi," "sinav1"... olduğunu biliyor. Şimdi artık istediğimiz noktada bu değişkenin istediğimiz değerine, o değerin endeks adını yazarak, çağrıda bulunabiliriz; bu değeri yeniden verebiliriz.&lt;br /&gt;Dizi değişkenleri kullanalım&lt;br /&gt;Yukarıdaki paragrafta "..değişkenin istediğimiz değerine, o değerin endeks adını yazarak, çağrıda bulunabiliriz.." dediğimizi görmüş olmalısınız. Dizi veya tekil, değişkenleri oluşturmamızın sebebi, tuttukları değerleri programımızın gereği olan şekilde ve yerde kullanmaktır. Sadece bir değer tutan değişkenleri örneğin print() komutu ile sık sık kullandık. Yukarıda dizi değişken örneklerinde de bazı değişkenleri ve değerlerini çağırdık. Ancak dizi değişkenlerin değerlerinden yararlanabilmek için başka araçlar da vardır.&lt;br /&gt;Herşeyden önce dizi değişkenlerin büyüklüğü, boyutu bizim için önem taşıyabilir. Özellikle bir veritabanı dosyasını okutarak oluşturacağımız dizi değişkenin kaç elemanı ve her bir elemanın kaç ögesi bulunduğunu bilmemiz gerekebilir.&lt;br /&gt;Bir dizi değişkenin kaç elemanı bulunduğu, o değişkenin count() özelliği sorgulanarak öğrenilir. count(), dizideki eleman sayısını verir. Şimdi bunu bir örnekle görelim. Daha önce kaydettiğimiz dizi_degiskenler04.php dosyasını açın ve PHP bölümünde şu değişikliği yaparak dizi_degiskenler06.php adıyla kaydedin:&lt;br /&gt;&lt;?php&lt;br /&gt;		$ogrenciler[] = "Özbay";&lt;br /&gt;		$ogrenciler[] = "Muharrem";&lt;br /&gt;		$ogrenciler[] = "Hasan";&lt;br /&gt;		$ogrenciler[] = "Şahika";&lt;br /&gt;// Buraya başka kodlar girecek&lt;br /&gt;print ("\$ogrenciler adlı dizide ". count($ogrenciler) ." adet eleman var.");&lt;br /&gt;?&gt;&lt;br /&gt;Bu program Browser penceresine dizimizde 4 eleman bulunduğunu bildirecektir. Şimdi işleri biraz karmaşık hale getirelim! Yukarıdaki kodun, print() satırının yerine şu satırları ekleyerek, dizi_degiskenler06a.php adıyla kaydelim. &lt;br /&gt;print ("\$ogrenciler adlı dizide ". count($ogrenciler) ." adet eleman var.");&lt;br /&gt;print ("&lt;br&gt;&lt;br&gt;");&lt;br /&gt;for ($sayac=1 ;  $sayac &lt;= count($ogrenciler) ; $sayac++ ) {&lt;br /&gt;print ("\$ogrenciler dizisinin ". $sayac ."'ncı elemanı: " . $ogrenciler[$sayac] ."&lt;br&gt;"); &lt;br /&gt;}&lt;br /&gt;Bu programı çalıştırmadan önce, eklediğimiz satırları irdeleyelim. İlk print() komutunun Browser penceresine "yazdıracağı" metinde geçen ters bölü işaretini hatırlıyor olmalısınız. Bu, tek veya çift tırnak içine de almış bile olsak, PHP'nin, bir değişken adını gördüğü zaman onun yerine o değişkenin tuttuğu değeri yazması sebebiyle, $ işareti gibi PHP için özel anlamı olan işaretlerin anlamlandırılmasını önlemek için yaptığımız ve adına o karakteri kurtarma veya ESCaping dediğimiz işlemdir. Bu işlemle, PHP'nin anlamlı işaret değil de metin saymasını istediğimiz karakterlerin önüne ters bölü işareti koyarız: \" gibi. Buradaki örnekte, bu sayede PHP "$ogrenciler" kelimesini değişken adı olarak değil, düz metin olarak görüyor. Ki, aynı komutta aynı kelimeyi tekrar kullandığımızda bu kez değişken adı olarak kullanıyoruz ve bu değişkenin count() ögesinin değerini öğreniyoruz. $ogrenci değişkenin "Özbay," "Muharrem," "Hasan" ve "Şahika" değerleri bulunduğuna göre, bu değişkenin count()'u 4 olacaktır. ("Ozbay" = 0, .. "Şahika" = 3 olmak üzere..) Bu print() komutu, Browser penceresine tahmin ettiğiniz gibi "$ogrenciler adlı dizide 4 adet eleman var." yazdıracaktır. İkinci print() satırı ise ekrana ardarda iki yeni satır işareti gönderecektir. &lt;br /&gt;Şimdi karışık noktaya geliyoruz! Burada bir for döngüsü başlıyor. Önce döngünün kaç kez tekrar edeceğini belirleyecek olan değişkeni tanımlıyoruz: $sayac. Sonra bu sayacın kaça kadar çıkacağını  belirliyoruz. Bu sayıyı, bize yine count() veriyor.  Ve tabiî for döngüsünün devam edebilmesi için gerekli son unsur olan, sayacın arttırılmasını sağlayan deyim var. Programımız bu döngünün içinde, yani dört kez, her seferinde dizinin bir elemanın adını Browser penceresine gönderiyor. Şimdi, hatırlayacaksınız, dizi değişkenlerin elemanlarının bir sıra sayısı vardı. Örneğin "Şahika" değeri, dizinin 3 numaralı, yani dördüncü elemanı; ve bu elemanın değerini ekrana göndermek için şu komutu vermemiz yeterli:&lt;br /&gt;print ($ogrenciler[4]);&lt;br /&gt;Programda ise buradaki endeks sayısını, $sayac değişkeninin o andaki değerinden alıyoruz. Döngünün her seferinde bu değer bir artacağı için bize $ogrenciler değişkeninin o anda hangi elemanının değeri çağırmak istiyorsak, o elemanın endeksini vermiş olacaktır. Ve sonuç olarak programımız, dizideki bütün değerleri Browser'a gönderecektir.&lt;br /&gt;&lt;php00018.tif&gt;&lt;br /&gt;Kimi zaman buradaki örnekte olduğu gibi, dizinin bütün elemanlarını bir for döngüsüyle değil, foreach döngüsüyle bulmak daha kolay olabilir. Kısaca belirtmek gerekirse, foreach döngüsü, bir dizi değişkenin bütün elemanları için, arzu ettiğiniz işi yapar. foreach döngüsünü yazarken komutun kaç kere icra edileceğini bir sayaçla tutmak gerekmez; çünkü döngü, ona adını verdiğiniz değişkenin içindeki bütün değerler bitinceye kadar devam edecektir. Yukarıdaki örnekteki bütün print() ve for satırlarını atarak yerine şunları yazıp ve dizi_degiskenler06b.php adıyla kaydelim. &lt;br /&gt;foreach ($ogrenciler as $ogrenci) {&lt;br /&gt;	print ("$ogrenci&lt;br&gt;"); &lt;br /&gt;	}&lt;br /&gt;foreach döngüsü, bir dizi değişkenin adını içinden değer çekilecek kaynak olarak ister; bunu "as" (olarak) kelimesi izler; sonra diziden alınacak her bir değeri geçici olarak tutacak değişkenin adı verilir. Buradaki print() komutumuz, bu geçici değişkenin tuttuğu değeri Browser'a gönöderecektir. Bu değer ise döngünün her adımında dizi değişkendeki bir değer yani öğrencilerin listesi olacaktır.&lt;br /&gt;Dizi elemanlarının farklı özelliklerine ilişkin değerlere endeks adı verdiğimiz ilişkili dizilerde ise eleman değerlerini çağırmak foreach döngüsünün biraz farklı yazılmasını gerektirir. Perl'e aşina alanların bu dizi türüne "hash" dendiğini hatırlayacaklardır. PHP'de de Perl'ün hash türü değişkenlerinde olduğu gibi, endeks adlarına "anahtar" (key), bu endeksin belirlediği değere ise (evet, doğru tahmin ettiniz!) değer (value) denir. İlişkili dizilerden değer almak üzere foreach döngüsü yazılırken, değerin anahtarını ve değerin kendisini iki geçici değişkene yazmamız gerekir. Daha önce yazdığımız dizi_degiskenler05.php adlı dosyayı açarak mevcut tek satırlık print() kodunun yerine şunları yazın ve dizi_degiskenler07.php adıyla kaydedin:&lt;br /&gt;foreach ($ogrenciler as $anahtar=&gt;$deger) {&lt;br /&gt;print ("$anahtar = $deger&lt;br&gt;");&lt;br /&gt;}&lt;br /&gt;Bu kodu çalıştırmadan önce foreach döngüsü üzerinde kısaca duralım: döngü, $ogrenciler dizisini okumaya başladığında içinde, benzetme yerinde ise, iki sütun, ve bir çok satırlar bulacaktır. Bu sütunlardan birincisi, ikinci sütundaki verinin adıdır; foreach, birinci sütundaki veriyi alarak $anahtar adlı geçici değişkenin değeri olarak atayacak; sonra ikinci sütuna geçecek ve bunu alarak $deger adlı geçici değişkenin değeri yapacaktır. Döngü, daha sonra print() komutunu icra edecektir. print() ise ve geçici $anahtar değişkeninin değerini, ardından eşittir işaretini ve son olarak da geçici $deger değişkeninin değerini Browser'a gönderecektir. print() komutunun icrası bitince, foreach, kendisine verdiğimiz $ogrenciler değişkeninde anahtar-değer çiftini ele almadığı satır kalıp kalmadığına bakacak, ve elemanların tümü bitinceye kadar bu işlemi tekrar edecektir. Tabiî, sonuç anahtar ve değerlerin altalta sıralanması olacaktır.&lt;br /&gt;&lt;php00019.tif&gt;&lt;br /&gt;Bir de bu bölümün en başında ele aldığımız çok elemanlı ilişkili diziler vardı. Onların içindeki değerleri acaba nasıl alabilir ve kullanabiliriz? Tabiî yine bir döngü ile. Fakat bu kez, döngü-içinde-döngü kullanmak zorundayız. Böyle bir diziyi gözümüzde canlandırırsak, belki neden iki döngüye ihtiyaç olduğununu daha iyi görebiliriz. Gözümüzün önüne bir tablo getirelim: dizinin her bir elemanı (bizim öğrenimizde öğrenciler9 bir satırda yer almış olsun; sütunlar olarak da bu elemana ait değerler yer alıyor. Sütun başlığı ise, bu değerin endeksi olan anahtar! Şimdi bu bölümün başında yazdığımız dizi_degiskenler0i.php adlı dosyayı açalım tek satırlık print() komutunun yerine şu satırları yazarak dizi_degiskenler08.php adıyla kaydedelim:&lt;br /&gt;foreach ( $ogrenciler as $ogrenci ) {&lt;br /&gt;	foreach ( $ogrenci as $anahtar =&gt; $deger ) {&lt;br /&gt;		print ("$anahtar = $deger &lt;br&gt; ");&lt;br /&gt;		}&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;Kısaca irdelersek, bu kodda foreach döngüsünün önce çok-boyutlu değişkenimizin bir satırını içindeki bütün anahtar+değer çeftleri ile ele alıp, tümünü $ogrenci adlı değişkene geçici olarak yerleştirdiğini görüyoruz. Bu foreach döngüsünün ilk işi yeni bir foreach döngüsü başlatmak oluyor. Yeni foreach ise sazı eline alır almaz, önce, kendisi çok ögeli bir değişken olan (çünkü içinde bir öğrenciye ait, tüm değişkenler ve onların endeks adları var) $ogrenci değişkeninin içindeki anahtar ve değer çiftlerini  tek-tek, $anahtar ve $deger değişkenlerine yerleştiriyor; sonra print() komutu ile, aralarına eşittir işareti koyarak bu değişkenlerin değerlerini Browser penceresine gönderiyor. Bu döngü biter bitmez, ilk foreach yaptıracağı işlere kaldığı yerden devam ediyor; ve ekrana bir yeni satır komutu gönderierek, başa dönüyor; bu kez çok boyutlu dizi değişkenin yeni bir elemana geçiyor. Taa ki, dizinin bütün elemanları ve elemanların bütün ögeleri bitinceye kadar.&lt;br /&gt;&lt;php00020.tif&gt;&lt;br /&gt;Bu noktada bir uyarı: Gerçek programda bir dizinin elemanlarına ilk ulaştığımızda, elemanın içinde değer bulunup bulunmadığını anlamak yerinde olur. Bunu is_array() fonksiyonu ile yapabiliriz. Bu fonksiyon, dizinin içinde değer varsa, True/Doğru, yoksa False/Yanlış karşılığını verecektir. Buradaki örnekte, ilk foreach satırından hemen sonra:&lt;br /&gt;is_array( $ogrenci )&lt;br /&gt;satırını koyarak, dizinin o anda okunan elemanın içinde değer bulunup bulunmadığını anlayabiliriz.&lt;br /&gt;Dizi Değişkenlerin Düzenlenmesi&lt;br /&gt;Dizi değişkenlerin daha verimli şekilde kullanılması için PHP bize bir takım araçlar sağlar. Bunlarla dizi değişkenleri birleştirebiliriz; içinden kesit alabiliriz, sıralayabiliriz veya bazı elemanlarını silebiliriz. Şimdi kısaca bu işlemleri ele alalım:&lt;br /&gt;Dizileri birleştirme: array_merge()&lt;br /&gt;İki veya daha fazla dizinin bütün elemanlarını birleştirerek, ortaya  yeni bir dizi çıkartır. Örnek:&lt;br /&gt;$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );&lt;br /&gt;$ikinci_dizi = array ( "Altun" , "Taç" , "Civelek" , "Tabak" );&lt;br /&gt;$yeni_dizi = array_merge ( $birinci_dizi, $ikinci_dizi );&lt;br /&gt;Bu kod ile oluşturulan $yeni_dizi isimli dizi değişkenin hangi elemanlara sahip olduğunu, şöyle bir kodla görebilirsiniz:&lt;br /&gt;foreach ( $yeni_dizi as $yeni_eleman ) {&lt;br /&gt;	print (" $yeni_eleman &lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;İkinci dizinin bütün elemanları, birinci dizinin elemanlarının arkasına eklenmiş olmalı. array_merge() işlemi, çok-boyutlu ilişkili dizilere de uygulanabilir; PHP iki dizideki uyumlu-uyumsuz, yani birinde olan diğerinde olmayan bütün anahtar+değer çiftlerini yeni dizide de oluştur. (array_merge() işleminden sonra birleştirilen dizilerin değişmeden kaldığına dikkat edin.)&lt;br /&gt;Dizilere değişken ekleme: array_push()&lt;br /&gt;Bir diziye yeni değişkenler eklemek için, array_push() fonksiyonuna mevcut dizinin adını ve yeni değerleri yazarız. Örnek:&lt;br /&gt;$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );&lt;br /&gt;$yeni = array_push ($birinci_dizi, "Altun" , "Taç" , "Civelek" , "Tabak" );&lt;br /&gt;Burada $yeni adlı değişken sadece $birinci_dizi adlı dizinin yeni eleman sayısını tutar. array_push(), kendisine adını verdiğimiz dizinin içeriğini değiştirir. Yukarıdaki örnekte içine yeni değerler yazılan dizinin elemanlarını görüntülemek için şöyle bir kod yazabiliriz:&lt;br /&gt;print ("\$birinci_dizi adlı dizide $yeni_dizi adet değişken var&lt;br&gt;");&lt;br /&gt;foreach ( $birinci_dizi as $ogrenci ) {&lt;br /&gt;	print ("$ogrenci &lt;br&gt; ");&lt;br /&gt;	}&lt;br /&gt;Dizinin ilk elemanını silme: array_shift()&lt;br /&gt;Bir dizi-değişkenin ilk elemanını tümüyle silmek için array_shift() fonksiyonunu kullanırız. Bu fonksiyona sadece birinci elemanı silinecek dizinin adını vermek yeter. Örnek:&lt;br /&gt;$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika" );&lt;br /&gt;$silinen = array_shift ($birinci_dizi);&lt;br /&gt;array_shift(), adını verdiğiniz dizinin içeriğini değiştirir; buradaki örnekte, $silinen adlı değişken dizinin silinen birinci elemanın değerini tutar.&lt;br /&gt;Diziden kesit alma: array_slice()&lt;br /&gt;Bir dizi-değişkenin bütün elemanları yerine bir kesitini kullanmak istiyorsak, bunu array_slice() fonksiyonu ile yapabiliriz. Bu fonksiyona kesit alınacak dizinin adı, kesitin başladığı yer ve kaç adet değişken alınacağı argüman olarak verilir. Örnek&lt;br /&gt;$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika", "Altun" , "Taç" , "Civelek" , "Tabak");&lt;br /&gt;$kesit = array_slice ($birinci_dizi ,  3, 4);&lt;br /&gt;Burada, PHP'ye $kesit adlı yeni dizi değişkene, $birinci_dizi adlı dizinin 3'ncü değerinden itibaren (3 dahil) dört değeri yerleştirmesini bildiriyoruz. array_slice(), adını verdiğimiz değişkenin içeriğine dokunmaz; yeni dizi değişken oluşturulur.&lt;br /&gt;Dizileri sıralama: sort() ve rsort()&lt;br /&gt;Bir dizinin içindeki değerleri alfabetik veya küçükten büyüğe doğru sıralamak için sort() fonksiyonunu kullanırız. Örnek:&lt;br /&gt;$birinci_dizi = array ( "Özbay" , "Muharrem" , "Hasan" , "Şahika", "Altun" , "Taç" , "Civelek" , "Tabak");&lt;br /&gt;sort ($birinci_dizi);&lt;br /&gt;PHP, dizideki bütün değerleri A'dan Z'ye sıraya sokacaktır. sort() fonksiyonu dizinin içeğini değiştirir. Bir diziyi Z'den A'ya veya büyükten küçüğe doğru sıralamak için de rsort() fonksiyonunu kullanabilirsiniz. (PHP4.0 Türkçe karakterleri tanımıyor.) Bir noktada dikkatli olmak gerekir: bu fonksiyonu ilişkili (değerlerin anahtarı olarak endeks adı bulunan) dizide kullanırsanız, PHP, anahtar değerlerini (endeks adlarını) atar, yerine 0'dan itibaren rakam koyar. Bunu önlemek için, ilişkili dizileri asort() veya ksort() fonksiyonu ile sıralamak gerekir.&lt;br /&gt;İlişkili dizileri sıralama: asort() ve ksort()&lt;br /&gt;İlişkili dizilerin diğer dizi değişkenlere göre farkı, değerlerinin bir de adı bulunmasıdır. Değerlerin adlarına anahtar denir. Bir ilişkili diziyi değerlerine göre sıralamak için asort() fonksiyonu kullanılır. Örnek:&lt;br /&gt;$birinci_dizi = array ( ogr_01=&gt;"Özbay", ogr_02=&gt;"Muharrem" , ogr_013&gt;"Hasan" , ogr_04=&gt;"Şahika");&lt;br /&gt;asort ($birinci_dizi);&lt;br /&gt;PHP, bu diziyi değerler itibariyle alfabetik sıraya sokacaktır. Eğer sıranın değere göre değil de değerlerin anahtarına (burada ogr_01, ogr_02 olan kelimeler) göre yapılmasını istiyorsak, ksort() fonksiyonunu kullanırız. Örnek:&lt;br /&gt;$birinci_dizi = array ( ogr_01=&gt;"Özbay", ogr_02=&gt;"Muharrem" , ogr_013&gt;"Hasan" , ogr_04=&gt;"Şahika");&lt;br /&gt;ksort ($birinci_dizi);&lt;br /&gt;PHP, şimdi bu diziyi anahtarlara göre alfabetik sıraya sokacaktır.&lt;br /&gt;Nesneler&lt;br /&gt;Nesne yönelimli (Object-oriented) programlama icad edildiğinde, geleneksel programlamaya aşina olanlar önce tereddüt ettiler; sonra bunun ne harika bir teknik olduğnunu gördüler ve nesnelerden vazgeçmez oldular. Kabaca tanımlarsak, nesne, kendi değişkenleri ve icra edeceği komutlardan oluşan fonksiyonları ile bir bütündür. Nesneyi bir kere tanımladıktan sonra istediğimiz kadar örneğini oluşturabiliriz. Bir nesnenin yapacağı işten, o nesnenin metodu diye söz ederiz. Bu açıdan bakarsanız, programlarımızda nesneler sadece metodları için işe yararlar.&lt;br /&gt;Diyelim ki programımızda bir "öğrenci" nesnesi oluşturmak istiyoruz. Bu nesnenin içinde adı, soyadı ve notlar gibi değişkenler, ve bu değişkenlerle yapılan bir takım işler bulunsun. İşe nesnenin tabir yerinde ise şablonu olan class'ı oluşturmakla başlayalım; gerisini de yaptıkça görelim.&lt;br /&gt;Bir Nesne Oluşturalım&lt;br /&gt;Bir nesne oluşturmak için önce onu tanımlamamız gerekir. Bunu PHP'nin class deyimini kullanarak yapabiliriz. Bir nesnenin özellikleri (properties) ve metodları (methods) vardır. Şu kodu nesneler01.php adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Degiskenler&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H2&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;class ogrenci {&lt;br /&gt;// özellikleri tanımlayalım&lt;br /&gt;	var $adi;&lt;br /&gt;	var $soyadi;&lt;br /&gt;	var $sinav1;&lt;br /&gt;	var $sinav2;&lt;br /&gt;	var $not;&lt;br /&gt;// metodları tanımlayalım&lt;br /&gt;function adi_belirle ($n) {&lt;br /&gt;	$this-&gt;adi = $n;&lt;br /&gt;	}&lt;br /&gt;function soyadi_belirle ($n) {&lt;br /&gt;	$this-&gt;soyadi = $n;&lt;br /&gt;	}&lt;br /&gt;function sinav1_belirle ($n) {&lt;br /&gt;	$this-&gt;sinav1 = $n;&lt;br /&gt;	}&lt;br /&gt;function sinav2_belirle ($n) {&lt;br /&gt;	$this-&gt;sinav2 = $n;&lt;br /&gt;	}&lt;br /&gt;function not_hesapla() {&lt;br /&gt;	$this-&gt;not = ($this-&gt;sinav1 + $this-&gt;sinav2)/2;&lt;br /&gt;print ($this-&gt;adi. " " . $this-&gt;soyadi . " için not ortalaması: ". $this-&gt;not);&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;//Buraya başka kodlar girecek&lt;br /&gt;$ogr1 =  new ogrenci();&lt;br /&gt;$ogr1 -&gt; adi_belirle("Şahika"); &lt;br /&gt;$ogr1 -&gt; soyadi_belirle("Tabak"); &lt;br /&gt;$ogr1 -&gt; sinav1_belirle(7); &lt;br /&gt;$ogr1 -&gt; sinav2_belirle(10); &lt;br /&gt;$ogr1 -&gt; not_hesapla(); &lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H2&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programda ogrenci adlı bir nesne tanımlıyoruz; ve daha sonra bir değişken adına new komutu ile bu nesnenin bir örneğini oluşturuyoruz. Nesnelerin yeni bir örneği veya kopyasını çıkartmak ifadeleri aslında yaptığımızı tam anlatmıyor. Nesnenin tanımı bir adet; her new komutu ile bu nesnenin özelliklerine ve metodlarına sahip yeni bir nesne yapmış oluyoruz. Nitekim bu işe insanın dilini dolayan İngilizce bir kelimeyle Instantiation (yeni bir varlığını oluşturma) deniyor. Bu örnekte, $ogr1 adlı değişken gerçekte, ogrenci nesnesinin tam bir örneği: içinde beş değişken ve altı metod var. Nesneyi bir kere tanımladıktan sonra programın daha ileri aşamalarında bu istediğimiz kadar örneğini farklı isimler vererek oluşturabiliriz. Şimdi şu satıra dikkat edelim:&lt;br /&gt;$ogr1 =  new ogrenci();&lt;br /&gt;$ogr1 -&gt; adi_belirle("Şahika"); &lt;br /&gt;Burada $ogr1'in parametrelerine nasıl değer yazdırdığımızı görüyorsunuz. Nesnenin metodlarından biri olan adi_belirle fonksiyonuna bir değer veriyoruz: "Şahika"; nesne oluşturulurken yazılmış olan bu fonksiyon ise aldığı değeri, kendi ait olduğu nesnenin bir değişkenine kaydediyor:&lt;br /&gt;function adi_belirle ($n) {&lt;br /&gt;	$this-&gt;adi = $n;&lt;br /&gt;	}&lt;br /&gt;Bu ve diğer fonksiyonlarda kullandığımız "$this-&gt;" ifadesi, kendisine ulaştırılan değeri bir parametre olarak kullanıyor ve "$adi" değişkenine yazıyor. "this" (bu) kelimesi o anda nesnenin o anda oluşturulmakta olan örneğine göndermede bulunur. "-&gt;" işlemcisini kullanarak, istediğimiz nesnenin istediğimiz metoduna veya parametresine değer gönderebiliriz. Bir nesnenin yeni bir örneğini oluşturduğumuz zaman, bu örneğin bütün parametrelerini sağlamak veya bütün metodlarını kullanmak zorunda değiliz.&lt;br /&gt;Yukarıdaki örneğe göre yeni örnekler oluşturarak en az dört öğrencinin not ortalamasını hesabedebilir misiniz?&lt;br /&gt;PHP ile Web programcılığı yolunda hızlı adımlarla yol alıyoruz. Bu bölümde gördüğümüz dizi değişkenler ve nesneler, Web sayfalarımızda bir çok işi adeta otomatik hale getirecek unsurlar olarak kullanılacak. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-8349476697888800216?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/8349476697888800216/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=8349476697888800216' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8349476697888800216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8349476697888800216'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/dizi-deikenler-nesneler-phpprogramlama.html' title='Dizi-Değişkenler, Nesneler  phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-8039047172856837746</id><published>2008-03-08T04:38:00.001-08:00</published><updated>2008-10-13T13:10:24.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Php Fonksiyonlar'/><title type='text'>Php Fonksiyonlar  phpprogramlama</title><content type='html'>Fonksiyonlar&lt;br /&gt;Bir bilgisayar programının kalbi, fonksiyonlardır. Fonksiyonlar, bir kere tanımlanır ve bir çok kereler, ihtiyaç olduğu noktada hizmete çağrılır. Fonksiyonlar genellikle bir iş veya hesaplama yaparlar ve bunun sonucu olarak ortaya yeni bir değer çıkartırlar. Bu değere "fonksiyondan dönen değer" denir. &lt;br /&gt;Fonksiyonun bir program için ne kadar önemli bir unsur olduğunu bir örnekle belirtelim. Diyelim ki Web'de öğrencilerimizin yıl içinde aldıkları notları gösteren bir programımız var. Bu siteyi ziyaret eden öğrencilerin, iskterlerse, bir düğmeyi tıklayarak, o andaki not ortalamalarını hesap ettirmelerini sağlamak istiyoruz. Bu hesabı yapacak olan işlem, bir fonksiyondur. Web ziyaretçisi düğmeyi tıkladığı anda, program, ortalama hesabını yapacak olan fonksiyonu, o sayfada bulunan notları bildirecek; fonksiyon da kendisine verilen bu değerlerle yapması gereken hesabı yapacak; ve elde edeceği sonucu kendisini göreve çağıran program satırına bildirecektir. Bildirilen bu değerle ne yapılacağı, fonksiyonu göreve çağıran komuta veya işleme aittir. Fonksiyon kendisinden isteneni yapmakla yetinir.&lt;br /&gt;PHP'nin kullanılmaya hazır bir çok fonskiyonu vardır. Şu ana kadar sürekli kullandığımız echo() ve print() bu tür PHP fonksiyonlarıdır. PHP'nin kendi fonksiyonlarını göreve çağırmak, yine yukarıdaki örneklerde olduğu gibi, program içinde gerektiği yere adını ve kullanacağı değeri yazmakla olur:&lt;br /&gt;print ("Bu bir metindir!");&lt;br /&gt;PHP bizim kendi fonksiyonlarımızı kullanmamıza da izin verir. Fakat bunun için önce fonksiyonu tanımlamamız gerekir.&lt;br /&gt;Fonksiyon Tanımlama ve Çağırma&lt;br /&gt;PHP'de fonksiyonlar function komutu ile oluşturulur. Tanımladığımız fonksiyon, kendisini göreve çağıracak komuittan, yapacağı işlemde kullanmak üzere değer alacaksa, bu değerlere vereceğimiz değişken isimleri fonksiyon adının yanında parantez içinde gösterilir. Fonksiyon birden fazla değer bekleyecekse, bunların değişken adlarının arasına virgül koyarız. Fonksiyona ulaştırılan değerlere argüman denir. Fonksiyon, kendisine bir değer ulaştırılmasını beklemese bile içi boş parantez koymamız gerekir. Buna göre PHP'de fonksiyon şöyle yazılır:&lt;br /&gt;function fonksiyonun_adı (argüman1, argüman2, ... argümanN) {&lt;br /&gt;	fonksiyonun yapacağı işe ilişkin komutlar&lt;br /&gt;	}&lt;br /&gt;Fonksiyon adları, değişken adları ile aynı kurallara tabidir. Fonksiyon içinden fonksiyon çağrılabilir; fonksiyonların içinde PHP'nin kendi fonksiyonları kullanılabilir. Şimdi, ilk örnek fonksiyonumuzu yazalım.&lt;br /&gt;Yukarıdaki örneklerde, PHP'ye, bir Web sayfası oluştururken HTML ögesi olacak bazı satırların başına &lt;H1&gt;, satır sonlarına &lt;BR&gt; gibi etiketler koydurduğumuza dikkat etmiş olmalısınız. Bir programda bu işi sık sık yapacaksak, yani metinlerimiz &lt;BR&gt; ile bitecek, bazı başlıklarımız ise sayfamıza HTML'in başlık etiketleri ile gönderilecekse, bu etiketleri defalarca yazmamız sadece zorluk değil, fakat aynı zamanda yazım hatasını davet eden bir davranır olur. PHP'de kendisine vereceğimiz metinleri başlık veya gövde yazısı olarak biçimlendirecek fonksiyonlar tanımlayarak, programcılıkta daima tehlikeli olan insan unsurunu asgarîye indirebiliriz. Şu programı yazdir01.php adıyla kaydederek, Browser'da açın:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;function yazdirBR ($metin) {&lt;br /&gt;	print ("$metin&lt;br&gt;\n");&lt;br /&gt;	}&lt;br /&gt;function yazdirH1 ($metin) {&lt;br /&gt;	print ("&lt;h1&gt;$metin&lt;/h1&gt;\n");&lt;br /&gt;	}&lt;br /&gt;function yazdirH2 ($metin) {&lt;br /&gt;	print ("&lt;h2&gt;$metin&lt;/h2&gt;\n");&lt;br /&gt;	}&lt;br /&gt;function yazdirH3 ($metin) {&lt;br /&gt;	print ("&lt;h3&gt;$metin&lt;/h3&gt;\n");&lt;br /&gt;	}&lt;br /&gt;function yazdirH4 ($metin) {&lt;br /&gt;	print ("&lt;h4&gt;$metin&lt;/h4&gt;\n");&lt;br /&gt;	}&lt;br /&gt;function yazdirP ($metin) {&lt;br /&gt;	print ("&lt;p&gt;$metin&lt;/p&gt;\n");&lt;br /&gt;	}&lt;br /&gt;// Başka kodlar buraya girebilir&lt;br /&gt;yazdirH1("Bu H1 Başlık");&lt;br /&gt;yazdirH2("Bu H2 Başlık");&lt;br /&gt;yazdirH3("Bu H3 Başlık");&lt;br /&gt;yazdirH4("Bu H4 Başlık");&lt;br /&gt;yazdirBR("Bu kendisinden sonra BR olan birinci metin.");&lt;br /&gt;yazdirBR("Bu kendisinden sonra BR olan ikinci metin.");&lt;br /&gt;yazdirP("Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir paragraf metni.");&lt;br /&gt;yazdirP("Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir diğer paragraf metni.");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programda,  yazdirBR(), yazdirH1(), yazdirH3(), yazdirH4(), ve yazdirP() adlarıyla altı fonksiyon tanımladığımızı görüyorsunuz. Bu fonksiyonların hepsi kendilerini göreve çağıran satırdan, kendilerine bir değer verilmesini istiyorlar ve bu değeri $metin adlı değişkende tutuyorlar. Fonksiyonlarımız tümü de PHP'nin print() fonksiyonundan yararlanıyor; ancak bu fonksiyonun nasıl kullanılacağını, nasıl işletileceğini de belirliyorlar. Buna göre bazı fonksiyonlarımız $metin adlı değişkenin değerini önüne ve arkasına bir HTML etiketi koyarak Browser'a gönderiyor; birisi ise sadece $metin değişkenin tuttuğu değerin sonuna bir HTML etiketi koyduruyor. Fonksiyonlarımı buradaki örnekte olduğu gibi hemen oluşturulduktan sonra göreve çağırmayız. Geleneksel olarak, bir programda kullanılacak fonksiyonlar, programın baş tarafında toplanır ve daha sonra nerede gerekirse orada, çağrılırlar. Fonksiyonları adlarını ve kendilerine verilmesi gereken bir değer varsa o değeri parantez içinde yazarak çağırırız. Burada olduğu gibi, fonksiyonu göreve çağırırken parantez içinde değerin kendisini yazabileceğimiz gibi, bu değeri tutan bir değişkenin adını da yazabiliriz. Bu programı çalıştırırsanız, Browser'da bu görüntüyü elde edebilirsiniz:&lt;br /&gt;&lt;php00012.tif&gt;&lt;br /&gt;Şimdi, bu penceredeki belgenin kaynağını görüntüleyelim. Karşımıza şuna benzer bir metin çıkmış olması gerekir:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;h1&gt;Bu H1 Başlık&lt;/h1&gt;&lt;br /&gt;&lt;h2&gt;Bu H2 Başlık&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Bu H3 Başlık&lt;/h3&gt;&lt;br /&gt;&lt;h4&gt;Bu H4 Başlık&lt;/h4&gt;&lt;br /&gt;Bu kendisinden sonra BR olan birinci metin.&lt;br&gt;&lt;br /&gt;Bu kendisinden sonra BR olan ikinci metin.&lt;br&gt;&lt;br /&gt;&lt;p&gt;Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir paragraf metni.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun  uzun uzun uzun bir diğer paragraf metni.&lt;/p&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu, bize, oluşturduğumuz bütün fonksiyonların kendilerinden bekleneni yaptığını ve kendilerine verdiğimiz metinleri, tıpkı istediğimiz gibi, arzu edilen HTML etiketleri ile birlikte Browser'a gönderdiklerini gösteriyor.&lt;br /&gt;Buradaki fonksiyon, kendisini bir iş yapan türden fonksiyondur. Oysa kimi zaman fonksiyonlar, kendilerini göreve çağıran komuta bir değer gönderirler. Şimdi de böyle bir fonksiyon örneği yazalım. Aşağıdaki kodu, hesapla.php adıyla kaydedin: &lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;function topla ($sayi1, $sayi2) {&lt;br /&gt;	$sonuc = $sayi1 + $sayi2;&lt;br /&gt;	return $sonuc;&lt;br /&gt;	}&lt;br /&gt;function cikart ($sayi1, $sayi2) {&lt;br /&gt;	$sonuc = $sayi1 - $sayi2;&lt;br /&gt;	return $sonuc;&lt;br /&gt;	}&lt;br /&gt;function carp ($sayi1, $sayi2) {&lt;br /&gt;	$sonuc = $sayi1 * $sayi2;&lt;br /&gt;	return $sonuc;&lt;br /&gt;	}&lt;br /&gt;function bol ($sayi1, $sayi2) {&lt;br /&gt;	$sonuc = $sayi1 / $sayi2;&lt;br /&gt;	return $sonuc;&lt;br /&gt;	}&lt;br /&gt;// Başka kodlar buraya girebilir&lt;br /&gt;$sayi1 = 12;&lt;br /&gt;$sayi2 = 5;&lt;br /&gt;&lt;br /&gt;	print topla($sayi1, $sayi2);&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;	print cikart($sayi1, $sayi2);&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;	print carp($sayi1, $sayi2);&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;	print bol($sayi1, $sayi2);&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programda, dört aritmetik işlemi yapan dört ayrı fonksiyon tanımlıyoruz. Fonksiyonlarımız kendilerini göreve çağıran komuttan, kendilerine iki değer vermesini bekliyorlar ve bu değerleri  $sayi1 ve $sayi2 adlı değişkenlere yazıyorlar. Sonra herbiri, kendisinden beklenen aritmetik işlemi yaparak, sonucunu $sonuc adlı değişkene yazıyor. Burada dikkat edeceğimiz nokta, return komutudur. Bu komut, f	onksiyonun elde ettiği değeri, değeri tutan değişkenin adıyla, fonksiyonu çağırmış olan satıra gönderir. return komutuyla, kendisini göreve çağıran satıra değil fakat mesela başka bir fonksiyona da değer gönderebiliriz:&lt;br /&gt;return ( baska_fonksiynon ( $degisken)) ;&lt;br /&gt;Fonksiyonun return  satırında böyle bir başka fonksiyonun adı yazmıyorsa, bulunan değer göreve çağıran satıra gönderilir. &lt;br /&gt;Bu program, içine bizim yazdığımız iki değeri hesaplayarak, Browser'a gönderecektir. Ancak bu değerler ziyaretçinin dolduracağı bir formdan alınabileceği gibi, program tarafından da hesaplanabilir&lt;br /&gt;&lt;php00013.tif&gt;&lt;br /&gt;Bu sayfanın kaynağındaki HTML kodları ise şöyla olacaktır:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;17&lt;br&gt;7&lt;br&gt;60&lt;br&gt;2.4&lt;br&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Fonksiyonlarımız, kendilerinden bekleneni yaparak, gereken hesaplamanın sonucunu, kendilerini göreve çağıran komuta, burada PHP'nin print() fonksiyona göndermiş; bu fonksiyon da sadece bu sonuçları Browser'a iletmiş bulunuyor.&lt;br /&gt;Fonksiyona varsayılan değer verebiliriz&lt;br /&gt;Buradaki örneklerde tanımladığımız fonksiyonlara bekledikleri değerleri, onları göreve çağırdığımız noktada biz veriyoruz. Ancak öyle durumlar olabilir ki, fonksiyonun beklediği değerlerden biri veya bir kaçı, göreve çağıran satır tarafından verilmeyebilir; fonksiyon varsayılan bir değerle çalıştırılabilir. Şu örneği yazdir02.php adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;function yazdir ($metin, $boyut=3) {&lt;br /&gt;	print ("&lt;font size=\"$boyut\"&gt;$metin&lt;/font&gt;&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;// Başka kodlar buraya girebilir&lt;br /&gt;yazdir("Bu Başlık", 5 );&lt;br /&gt;yazdir("Bu küçük boyutta bir metin", 2);&lt;br /&gt;yazdir("Bu varsayılan boyutta bir metin");&lt;br /&gt;yazdir("Bu çok büyük Başlık", 8);&lt;br /&gt;yazdir("Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde.");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu örnekte, daha öncekilerden farklı olarak fonksiyonun, beklediği iki argümandan birisini, fonksiyonu tanımlarken verdiğimize dikkat edin: " function yazdir ($metin, $boyut=3)" ifadesi, PHP'ye, "Bu fonksiyona ikinci argüman eksik gönderilirse, telaşa kapılma, onun yerine 3 rakamını kullan!" anlamına gelir. Nitekim, programın daha ilerdeki bölümlerinde bu fonksiyon görevlendirilirken birinci argümanın değeri olan metin verildiği halde, iki ayrı yerde ikinci argümanın değeri verilmiyor. Bu iki durumda., PHP, yazdir() fonksiyonunda varsayılan değer olan 3'ü kullanıyor.&lt;br /&gt;&lt;php00014.tif&gt;&lt;br /&gt;Bunu, görüntülenen sayfanın kaynağında rahatça görebiliriz:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="5"&gt;Bu Başlık&lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;font size="2"&gt;Bu küçük boyutta bir metin&lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;font size="3"&gt;Bu varsayılan boyutta bir metin&lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;font size="8"&gt;Bu çok büyük Başlık&lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;font size="3"&gt;Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. Bu uzun bir paragraf metni. Boyutu varsayılan ölçüde. &lt;/font&gt;&lt;br&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Programda, yazdir() fonksiyonunun ikinci ve dördüncü kullanımında ikinci argümanın bulunmadığına, yukarıdaki HTML'de bu satırlar için font size="3"  etiketinin kullanıldığına dikkat edin.&lt;br /&gt;Değişkenlerin kapsamı: global ve static&lt;br /&gt;Yukarıda hesapla.php örneğini birlikte yaptıysak, bir nokta dikkatinizi çekmiş olmalı: dört fonksiyonda da aynı değişken adlarını kullanıyoruz ve sonucu aynı isimle print() fonksiyonuna gönderiyoruz. PHP nasıl oluyor da, aynı isimli değişkenleri buradaki gibi ayrı ayrı değerlerle ele alabiliyor? Bu sorunun cevabını verebilmek için değişkenlerin kapsam alanına bakmamız ve ve bu arada global deyimi ile tanışmamız gerekir.&lt;br /&gt;Bir fonksiyonun değişkenleri, sadece o fonksiyonun ömrü süresince vardır; hiç bir fonksiyon diğer bir fonksiyonun değişkenlerinin veya kendisine verilmemiş bir başka değişkenin değerini bilemez; kullanamaz. Bunu hemen bir örnekle görelim. Şu kodu kapsam01.php adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;$metin = "Başkalarına yararlı olmanın sınırı yoktur!";&lt;br /&gt;function yazdir () {&lt;br /&gt;	print ("&lt;h1&gt;İşte metin: $metin &lt;/h1&gt;");&lt;br /&gt;	}&lt;br /&gt;// Başka kodlar buraya girebilir&lt;br /&gt;	yazdir();&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Normal görünüşlü bir fonksiyon ve kendisinden önce tanımlanmış olan $metin adlı değişkenin tuttuğu değeri, kendisi göreve çağrıldığı anda Browser penceresinde görüntülemeye hazır görünüyor! Fonksiyonun dışarıdan argüman istemediğini, kullanacağı print() komutunun konusu olarak $metin değişkeninin değerini kullanacağını da anlıyabiliyoruz. Fakat bu programı çalıştırdığımızda karşımıza çıkan manzara çok farklı oluyor.&lt;br /&gt;&lt;php00015.tif&gt;&lt;br /&gt;Fonksiyonun çalıştığını, yazdırması beklenen şeylerin ilk bölümünü yazdırmış olmasından anlayabiliriz. Fakat, $metin değişkeninin değeri nerede? Şimdi bu sorunun cevabını biliyoruz: $metin değişkeni fonksiyonun kapsama alanı (scope) dışında! Bir fonksiyon kendisine verilmeyen veya kendi içinde tanımlanmayan bir değişkeni kullanamaz; bilemez, değerinden haberi olmaz. Nitekim bu görüntüyü aldığınız sırada kaynak kodlarına bakarsanız, "&lt;h1&gt;..&lt;/h1&gt;" etiketlerinin arasında sadece "İşte metin:"  kelimelerinin bulunduğunu göreceksiniz.&lt;br /&gt;Bir fonksiyonun dışında tanımladığımız değişkenlerimizi fonksiyona tanıtabilmek için global deyimini kullanırız; böylece değişken bütün program boyuinca küresel nitelik kazanmış olur:&lt;br /&gt;Aynı kodun fonksiyon bölümünü şöyle değiştirerek, kapsam02.php adıyla kaydedin:&lt;br /&gt;function yazdir () {&lt;br /&gt;	global $metin;&lt;br /&gt;	print ("&lt;h1&gt;İşte metin: $metin &lt;/h1&gt;");&lt;br /&gt;	}&lt;br /&gt;Programımızı çalıştırdığımızda, bu kez metnin arzu ettiğimiz gibi görüntülendiğini göreceğiz.&lt;br /&gt;&lt;php00016.tif&gt;&lt;br /&gt;Bu noktada dikkat etmemiz gereken şey, global deyimi ile kendisine kullanılmak üzere verilen değişken, artık bir bakıma fonksiyonun malı olur ve fonksiyon tarafından değeri değiştirilebilir. Bütün program boyunca kullanmaya niyetli olduğunuz global değişkenlerin, kullanımına verildiği fonksiyon tarafından değiştirilip-değiştirilmediğine dikkat edin. &lt;br /&gt;Bir değişkenin bütün programda gerekli olmadığı ve sadece bir fonksiyon içinde kullanılacağı durumlarda bu değişkeni fonksiyonun içinde tanımlamak daha doğru olur. Fakat daha önce belirttiğimiz gibi fonksiyonların içinde tanımlanan değişkenler fonksiyon çalışırken var olur; fonksiyon sona erdiğinde de ölür. Başka bir deyişle, bir fonksiyonun içinde oluşturduğumuz bir değişkenin fonksiyon sona erdiğinde sıfırlanmaması için bir çare olması gerekir. Bu çarenin adı, static deyimidir. Şöyle bir örnek düşünelim: Sitemizdeki bir hesaplama fonksiyonu ziyaretçilerimizin yeni alışverişlerinin toplamını eski toplama ekleyerek, yeni ana toplamı buluyor ve ziyaretçi alışveriş sepetine yeni bir mal ekledikçe, ve o andaki ana toplamın ne olduğunu öğrenmek istedikçe, fonksiyonumuzun eski ana toplamı hatırlaması gerekiyor. Şu andaki PHP bilgimizle böyle bir program yazmaya kalkmayalım; ama daha basit bir örnek olarak bu kodu static.php adıyla kaydedelim:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Fonksiyon&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;function saydir () {&lt;br /&gt;	static $sayi = 0;&lt;br /&gt;	$sayi++;&lt;br /&gt;	print ("&lt;h3&gt;Fonksiyonun tuttuğu sayı: $sayi &lt;/h3&gt;");&lt;br /&gt;	}&lt;br /&gt;// Başka kodlar buraya girebilir&lt;br /&gt;	print ("&lt;h2&gt;Fonksiyonun birinci kez çağrılması:&lt;/h2&gt;");&lt;br /&gt;	saydir();&lt;br /&gt;	print ("&lt;h2&gt;Fonksiyonun ikinci kez çağrılması:&lt;/h2&gt;");&lt;br /&gt;	saydir();&lt;br /&gt;	print ("&lt;h2&gt;Fonksiyonun üçüncü kez çağrılması:&lt;/h2&gt;");&lt;br /&gt;	saydir();&lt;br /&gt;	print ("&lt;h2&gt;Fonksiyonun dördüncü kez çağrılması:&lt;/h2&gt;");&lt;br /&gt;	saydir();&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programı, static deyimi olmadan çalıştıracak olursak, saydir() fonksiyonu her çağrıldığında $sayı değişkeninin baştan tanımlandığını ve bir türlü 1'den ileri gidemediğini göreceğiz. static ise fonksiyon bittikten sonra $sayi değişkeninin değerinin değişmeden kalmasını sağlayacaktır.&lt;br /&gt;Şimdi, bir PHP programının gerektirdiği hemen herşeyi görmüş olduk; sadece iki özel araç, dizi değişkenler ve nesneler (Objects) kaldı. Bunları da gelecek bölümde ele aldıktan sonra, PHP'yi gerçek ortamda, Web'de kullanmaya başlayabiliriz.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-8039047172856837746?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/8039047172856837746/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=8039047172856837746' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8039047172856837746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/8039047172856837746'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-fonksiyonlar-phpprogramlama.html' title='Php Fonksiyonlar  phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-4558797843258791993</id><published>2008-03-08T04:37:00.000-08:00</published><updated>2008-10-13T13:10:24.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP&apos;de Program Denetimi'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>PHP'de Program Denetimi  phpprogramlama</title><content type='html'>&lt;strong&gt;PHP'de Program Denetimi&lt;/strong&gt;&lt;br /&gt;Bilgisayar programı, belirli değerlere göre kendi izleyeceği yolu kendisi bulmalıdır. Bir Web programı da aynı mantıkla tasarlanır. PHP, bir kısmını daha önceki bölümlerde, bir kısmını da şimdi ele aldığımız araçları kullanarak, belirli durumlarda belirli istikametlere gidecek, yeri geldiğinde geri dönecek, yeri geldiğinde başka bölümlere sıçrayacak bir akış planı tasarlamamıza imkan verir. &lt;br /&gt;Web programlarımızda, ziyaretçilerimizin sitemizde yaptıkları veya yapmak istediklerini bildirdikleri işe göre sayfalar, bu işlere göre sayfa içerikleri sunarız. Web programımız ziyaretçimizin hareket tarzına ve amacına uygun olarak ilerler. Bir programın akış planını kontrol etmemizi sağlayan unsurlar çoğu zaman programın kendi kendine karar vermesini sağlayan araçlardır. PHP'de program denetim unsurları, programın gidiş yönünü değiştirmemizi veya olduğu yerde durmasını ve beklemesini veya bir işi biteviye yapmasını sağlar. Bu bölümde bu araçları ele alacağız.&lt;br /&gt;if Deyimi&lt;br /&gt;İnsan olarak kararlarımızı hemen hemen daima "bir şey öyle ise böyle, öyle değilse şöyle davranmak" üzere almaz mıyız? PHP programında if deyimi bunu sağlar. Kelime anlamı eğer olan if deyimi ile programımızı karar almaya zorlarız. Ne var programımız bizim kadar akıllı olamayacağı için if şartının doğru veya yanlış olması durumunda ne yapacağını da ona biz söyleriz. if deyimi şöyle yazılır:&lt;br /&gt;if ( koşullar ) {&lt;br /&gt;koşullar doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;}&lt;br /&gt;elseif (diğer koşullar) {&lt;br /&gt;diğer koşullar doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;diğer her durumda yapılacak işlere ilişkin komutlar&lt;br /&gt;}&lt;br /&gt;PHP, if ifadesinin doğru olması halinde, ifadeye ait ilk süslü parantezin içindeki komutları icra eder; bu şartlar doğru değilse, elseif deyimi ile ileri sürebileceğimiz diğer bir grup şartın doğru olup olmadığını sınayabiliriz. Bu şartlar yerine geliyorsa, PHP, elseif bölümündeki işleri icra eder. Nihayet diğer her hangi bir durumda icra edilmesini istediğimiz komutları else bölümünde belirtiriz. PHP, if deyimi doğru değilse, deyime ait süslü parantezin içindeki işleri yapmadan yoluna devam eder; varsa elseif deyiminin şartlarını sınar; elseif bölümü yok fakat else bölümü varsa bu bölümdeki işleri icra eder. Deyimde else bölümü de yoksa, PHP yoluna if deyiminden sonraki ilk adımdan devam eder. Bunu bir örnekle belirtelim:&lt;br /&gt;&lt;?php&lt;br /&gt;	$sarki = "Güneş Doğacak";&lt;br /&gt;	if ( $sarki == "Güneş Doğacak" ) {&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Güneş Doğacak!");&lt;br /&gt;	}&lt;br /&gt;	elseif ($sarki == "Beklerim Ben") {&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Beklerim Ben!");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	echo ("Lütfen bir şarkı seçiniz!");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Çoğu zaman if deyimlerini birden fazla koşulu sınayacak şekilde yazarız; bununla birlikte elseif ve else bölümleri olmadan da yazılabilir:&lt;br /&gt;&lt;?php&lt;br /&gt;	if ( $parola == "" ) {&lt;br /&gt;	echo ("Sitemize girmek için parola yazmanız gerekir.&lt;br&gt;"); &lt;br /&gt;	echo ("Lütfen parolayı yazın! &lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Buradaki if deyimi $parola değişkeninin boş alfanümerik olması halinde ziyaretçiyi uyarak ve görevi bitecektir. Ziyaretçi bir parola yazmışsa, daha sonraki komutlar bu parolanın doğru olup olmadığını sınayabiliriz.&lt;br /&gt;switch deyimi&lt;br /&gt;PHP'de program akışını yönlendirmekte kullandığımız bir diğer unsur, switch deyimidir. Adı anahtar anlamına gelen switch deyimi, verilen bir değişkenin değerinin sıraladığımız koşullardan hangisine uygun olduğunu sınar ve  o koşula ilişkin komutları icra eder. PHP'nin yaptığı işi bitirdikten sonra switch deyiminin dışına çıkmasını sağlayan, break komutu vardır:&lt;br /&gt;switch ( değişken ) {&lt;br /&gt;case KOŞUL-1 ;&lt;br /&gt;	Koşul-1 doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;break;&lt;br /&gt;case KOŞUL-2 ;&lt;br /&gt;	Koşul-2 doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;break;&lt;br /&gt;case KOŞUL-3 ;&lt;br /&gt;	Koşul-3 doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;break;&lt;br /&gt;case KOŞUL-4 ;&lt;br /&gt;	Koşul-4 doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;break;&lt;br /&gt;......................&lt;br /&gt;......................&lt;br /&gt;default:&lt;br /&gt;	diğer her durumda yapılacak işlere ilişkin komutlar&lt;br /&gt;}&lt;br /&gt;switch deyimini yazarken mutlaka break ifadesini kullanmamız gerekmez; switch deyiminin akışı break ile kesilmemişse, program ilk şart yerine gelmiş olsa bile diğer şartları da sınamaya devam eder ve en sondaki default deyimine ulaşarak (default'tan sonra noktalı virgül değil iki nokta üstüste işareti olduğuna dikkat edin), bu bölümdeki komutları icra eder. Ne var ki programcılık mantığına aykırı olabilir: bir değişkenin içeriği verdiğimiz şartlardan birini tutmuşsa, muhtemelen diğer şartları yerine getirmeyecek demektir. Bu durumda diğer koşulların sınanması  gereksiz e default işlerin icra edilmesi ise hata olur. Bu deyimi de bir örnekle görelim:&lt;br /&gt;switch ( $sarki ) {&lt;br /&gt;case "Güneş Doğacak" ;&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Güneş Doğacak&lt;br&gt;") ;&lt;br /&gt;break;&lt;br /&gt;case "Derdime Derman" ;&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Derdime Derman&lt;br&gt;") ;&lt;br /&gt;break;&lt;br /&gt;case "Haberi Yok" ;&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Haberi Yok&lt;br&gt;") ;&lt;br /&gt;break;&lt;br /&gt;case "Sonsuza kadar" ;&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı: Sonsuza kadar &lt;br&gt;") ;&lt;br /&gt;break;&lt;br /&gt;default:&lt;br /&gt;	echo ("Seçtiğiniz şarkının adı bilinmiyor&lt;br&gt;") ;&lt;br /&gt;}&lt;br /&gt;Programımız, bu kodu icra ederken,, $sarki adlı değişkenin değerini, buradaki dört isimle karşılaştıracaktır. Şarkının adı, "Güneş Doğacak" ise ilk durum gerçekleşmiş olacak; program Browser pencerisine şarkının adını yazacak (ve muhtemelen bu sözlerini görüntüleyecek!) ve ikinci adıma break ifadesine geçecektir. break, switch deyiminin sona ermesini sağlar; PHP yoluna, switch deyiminin kapanan süslü parantezinden sonra devam eder. Bu örnekte break ifadesi kullanılmamış olsaydı, PHP, diğer şartları da sınacak ve boşun azaman kaybedecekti; daha da garibi, en sondaki default komutu da icra edileceği için programımız Browser pencerisine hem seçilen şarkının adını, hem de "Seçtiğiniz şarkının adı bilinmiyor" yazacaktı. Bunu gözönünde tutarak, switch deyimini daima break ile birlikte yazmamız gerekir.&lt;br /&gt;////////////////KUTU///////////////&lt;br /&gt;switch için kısa yol&lt;br /&gt;Kimi zaman uzun uzadıya switch deyimi yazmamız gerekmeyebilir; bir değişkenin değerini sadece bir şarta uygunluk açısından sınamamız gerekir. Bunu soru ve iki nokta üstüste işaretleri (? ... :) olarak yazılan işlemci ile yaparız. Diyelim ki, Web sitemizi ziyaret eden kişinin parola yazıp yazmadığını sıramak istiyoruz:&lt;br /&gt;&lt;?php&lt;br /&gt;$uyari = ($parola == "" ) ? "Parola yazmanız gerekir" : "Teşekkür ederiz" ;&lt;br /&gt;echo ($uyari);&lt;br /&gt;?&gt;&lt;br /&gt;Bu kod parçacığı, ziyaretçinin parola girip girmediğini $parola değişkeninin içinin boş olup olmadığına bakarak anlayacak ve $parola değişkenin  içi boş ise (yani soru işaretinin sorguladığı durumun doğru olması halinde) iki nokta üstüskte işaretinden önceki metni $uyarı değişkenin içeriği haline getirecek; $parola değişkeninin içi dolu ise (yani koşul yerine gelmiyorsa, durum yanlış ise) iki nokta üstüste işaretinden sonraki metni $uyarı değişkeninin içeriği yapacaktır. Bir sonraki echo() komutu ise içeriği bu sınav sonucuna göre belirlennen $uyarı değişkeninin değerini Browser penceresinde görüntüleyecektir.&lt;br /&gt;/////////////////////////////KUTU BİTTİ///////////////&lt;br /&gt;Döngüler&lt;br /&gt;Yukarıdaki iki denetim ögesi de programın ileri doğru akışını bozmayan araçlardır. Oysa bazen programımızın bir koşul gerçekleşincele kadar yerinde sayması ve koşul gerçekleşmedikçe ilerlememesi gerekebilir. Kimi zaman da programımıza bir işi bitirmeden ileri gitmemesini biz bildiririz. Program akışının bu tür denetimini döngü deyimleri sağlar. PHP'de iki tür döngü vardır: bir durum devam ettiği veya etmediği sürece yapılan ve kaç kere tekrar edeceği bilinemeyen while döngüleri, ve tekrar sayısı belirli for döngüleri.&lt;br /&gt;while döngüsü&lt;br /&gt;Bir değişkenin içeriğinin belirli bir şartı karşılaması veya karşılamaması halinde icra edilir. Burada dikkat edeceğimiz nokta, programın icrası sırasında değişkenin içeriğinin veya koşulun değişmesinin sağlanmasıdır. Aksi taktirde pıgramımız sonsuz döngüye girer ve muhtemelen çöker. while döngüsü şöyle yazılır:&lt;br /&gt;while (koşul) {&lt;br /&gt;	Koşul doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;	}&lt;br /&gt;Bu yöntemin yaygın kullanıldığı alan, bir sayaçla yaptırılan işlerdir. Aşağıdaki programı while.php adılma kaydedip, çalışrırsanız, PHP, Browser'ın yazı türü boyutunu 1'den 7'ye kadar büyüterek, aynı metni yazdıracaktır:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Döngü&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;	$sayac = 1;&lt;br /&gt;	while ( $sayac &lt;= 7 ) {&lt;br /&gt;	print ("&lt;font size= $sayac &gt;");&lt;br /&gt;	print ("&lt;b&gt;&lt;p&gt;İyileri iyilikleri ile alkışlayınız!&lt;/b&gt;&lt;/p&gt;");&lt;br /&gt;	print ("&lt;/font&gt;");&lt;br /&gt;	$sayac ++;&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Programımız, while döngüsü içindeki iken, sonsuz döngüden kurtulabilmek için, yazıyı yazdırdıktan sonra, $sayac değişkenini bir arttırıyor. Aksi taktirde, değişken hiç bir zaman while döngüsünün beklediği şarta kavuşarak 7'ye eşit hale gelemeyecektir. (Programı, sondaki "$sayac ++;" satırını kaldırarak denerseniz, zararsız bir sonsuz döngünün ne olduğunu görebilirsiniz! Ama önce Browser'ın dur düğmesinin yerinde durup durmadığna bir bakın!) &lt;br /&gt;while döngüsün aradığı şartın yerine gelmesi, her zaman burada olduğu gibi, tabir yerinde ise "elle" yapılmaz; döngünün icra ettiği komutlar veya fonksiyonlar koşulu içeren değişkeni değiştirebilirler. Sözgelimi elektronik ticaret sitemizde Web ziyaretçimizin while içinde yaptığı alışverişin tutarını koşul olarak kullanabiliriz ve bu koşulu içeren değişken alışveriş ile değişebilir.&lt;br /&gt;do..while&lt;br /&gt;while döngüsü farkettiğiniz gibi, ileri sürdüğümüz şartı, iyi yapmadan önce sınar; ve bu şart ortadan kalkmamışsa (yani henüz doğru/true ise) yapacağı işi yapar; başka bir deyişle while döngüsünün yapacağı iş hiç yapılmayabilir. Fakat sınamanın iş yapıldıktan sonra yerine getirildiği bir şekli de vardır: do..while.. Bu döngü ise şöyle yazılır:&lt;br /&gt;	do {&lt;br /&gt;	Koşul doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;	}&lt;br /&gt;	while (koşul);&lt;br /&gt;Burada gördğünüz gibi do..while döngüsü en az bir kere icra edilir; çünkü şartın sınanması yapılacak işe ilişkin komutlardan sonra gelmektedir. Bu döngünün aradığı şartın döngünün yaptığı işlerin sonucu veya kod bölümünde bizim tarafımızdan gerçekleştirilmesi için igerekli komutların bulunmasına dikkat etmelisiniz. Yoksa, bu döngü de sonsuzluğa erişir! Yukarıda örneği, bu yöntemle yazalım:&lt;br /&gt;&lt;?php&lt;br /&gt;	$sayac = 1;&lt;br /&gt;	do {&lt;br /&gt;	print ("&lt;font size= $sayac &gt;");&lt;br /&gt;	print ("&lt;b&gt;&lt;p&gt;İyileri iyilikleri ile alkışlayınız!&lt;/b&gt;&lt;/p&gt;");&lt;br /&gt;	print ("&lt;/font&gt;");&lt;br /&gt;	$sayac ++;&lt;br /&gt;	}&lt;br /&gt;	while ( $sayac &lt;= 7 ) ;&lt;br /&gt;?&gt;&lt;br /&gt;Bu döngüyü yazarken, while satırının sorunda noktalı virgül bulunduğuna dikkat edin.&lt;br /&gt;for döngüsü&lt;br /&gt;PHP'de Web programlarımız, döngünün belirli bir sayıda olmasını ve mesela bu sayının bizim istediğimiz basamaklarda artmasını gerektiriyorsa, döngüyü for deyimiyle kurabiliriz. Ayrıca for deyimi sayaç gibi şartın yerine gelmesini sağlayacak arttırma veşa eksiltme işlemlerini kendisi yapacağı için, sonsuz döngüye girme tehlikesi de hemen hemen yoktur. Bu döngü şöyle yazılır:&lt;br /&gt;	for ( $yeni_degisken atama ; koşul ; artış basaması ) {&lt;br /&gt;	Koşul doğru ise yapılacak işlere ilişkin komutlar&lt;br /&gt;	}&lt;br /&gt;for deyiminin ilk ögesi, döngü sayacı olarak kullanılacak bir değişken oluşkturulması ve buna değer atanmasına ilişkindir; sonra bir noktalı vrigül ile bu sayacın sınırı olan koşul belirtilir. Yine noktalı virgül ile ayırarak, sayaç değişkeninin artış hızı verilir. Bunu da yine yukarıdaki örnekle gösterelim:&lt;br /&gt;&lt;?php&lt;br /&gt;	for ($sayac = 1; $sayac &lt;= 7 ; $sayac++ ) {&lt;br /&gt;	print ("&lt;font size= $sayac &gt;");&lt;br /&gt;	print ("&lt;b&gt;&lt;p&gt;İyileri iyilikleri ile alkışlayınız!&lt;/b&gt;&lt;/p&gt;");&lt;br /&gt;	print ("&lt;/font&gt;");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Buradaki kod, while ve do..while göre çok daha kısa; ve while döngüsü sayacı arttırmayı sağlayan satır unutulsa bile çalışacağı halde, for döngüsü unsurlara ilişkin noktalı virgüller eksik olursa çalışmayacak ve bize böylece sonsuz döngü tehlikesini hatırlatmış olacaktır. for döngüsü kendi sayacını verdiğiniz şartı karşılayıncaya kendisi arttıracak, yani buradaki örneği göre $sayaç değişkeni 7 oluncaya kadar çalışacak ve şart karşılandığı anda, sona erecektir.&lt;br /&gt;//////////////////KUTU///////////////&lt;br /&gt;foreach&lt;br /&gt;PHP'nin programcıya çok kolaylık sağlayan bir diğer döngüsü, foreach döngüsüdür. Ancak bir değişkenin bütün elemanlarını tekrar sayısında esas alan bu döngünün çalışma ilkelerini görebilmek için dizi değişken kavramını ele almış olmamız gerekiyor. Şimdilik bu döngünün varlığını bir kenara yazıp, dizi değişkenlere kadar, unutabilirsiniz.&lt;br /&gt;////////////////////KUTU BİTTİ///////////////&lt;br /&gt;Döngüyü sona erdirmek için: break&lt;br /&gt;Programımızın akışı, bazen döngünün durdurulmasını gerektirir. Örneğin, sayaç değişkenini ziyaretçinin vermesi gerektiği ve vermediği durumda, döngünün başlamaması yerinde olur. Programın gerektirdiği böyle bir sebeple döngüyü break komutuyla durduruz. &lt;br /&gt;Sözgelimi aşağıdaki kodda kullandığımız $tekrar değişkenini değerini ziyaretçiden form yoluyla aldığımızı varsayalım:&lt;br /&gt;&lt;?php&lt;br /&gt;	$tekrar = 10 :&lt;br /&gt;	for ($sayac = 1; $sayac &lt;= $tekrar ; $sayac++ ) {&lt;br /&gt;	if ( $tekrar &lt;= 0 ) &lt;br /&gt;	break;&lt;br /&gt;	print ("&lt;font size= $sayac &gt;");&lt;br /&gt;	print ("&lt;b&gt;&lt;p&gt;İyileri iyilikleri ile alkışlayınız!&lt;/b&gt;&lt;/p&gt;");&lt;br /&gt;	print ("&lt;/font&gt;");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Bu kod parçasını, bir sayfa kodunun içine yerleştirir ve önce bu şekliyle, danha sonra $tekrar= 0 yazarak sınarsanız, break komutunun işe yaradığını göreceksiniz. ($tekrar değişkeninin değerini, Form yoluyla ziyaretçiden değişken değeri almayı öğreninceye kadar şimdilik kaydıyla biz yapıyoruz. Ayrıca buradaki if deyiminin süslü parantez olmadan yazıldığına dikkat edin.&lt;br /&gt;Döngüyü sürdürmek için: continue&lt;br /&gt;break ifadesinin döngüyü tamamen durdurduğunu farkettiniz mi? Oysa programımızın akışı, kimi zaman da döngünün sadece belirli bir durumda kendisinden beklenen işi yapmamakla birlikte böyle tümüyle kesilmesini de gerektirmez. Yine yukarıdaki örneğe dönersek, sayaç değişkenini ziyaretçinin vermesi gerektiği ve vermediği durumda, döngünün tümüyle kesilmesini değil de, sadece sayacı gösteren $sayac değişkeninin sıfırdan büyük bir değere ulaşlmasını beklememiz yerinde olabilir. Bu devamlılığı continue komutuyla sağlarız:&lt;br /&gt;Yine bu örnekte kullandığımız $sayaçc değişkeninin değerini ziyaretçiden form yoluyla aldığımızı varsayarak, kodu şöyle değiştirebiliriz:&lt;br /&gt;&lt;?php&lt;br /&gt;	$sayac = -5 :&lt;br /&gt;	for (; $sayac &lt;= 7 ; $sayac++ ) {&lt;br /&gt;	if ( $sayac &lt;= 0 ) &lt;br /&gt;	continue;&lt;br /&gt;	print ("&lt;font size= $sayac &gt;");&lt;br /&gt;	print ("&lt;b&gt;&lt;p&gt;İyileri iyilikleri ile alkışlayınız!&lt;/b&gt;&lt;/p&gt;");&lt;br /&gt;	print ("&lt;/font&gt;");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Bu durumda PHP, conktinue komutunu gördüğü anda for döngüsünün geri kalan kısmını icra etmek yerine başa dönecek ve döngüyü yeniden icra etmeye başlayacaktır. Döngünün ilk satırınnda kod parçasını, bir sayfa kodunun içine yerleştirir ve önce bu şekliyle, danha sonra $sayac= 1 yazarak sınarsanız, continue komutunun programı sayaç değişkeninin değeri 1 oluncaya kadar durdurduğunu ama bu sırada for döngüsünün devam ettiğini göreceksiniz. ($sayac değişkeninin değerini, Form yoluyla ziyaretçiden nasıl alacağımızı daha sonra göreceğiz.)&lt;br /&gt;Buraya kadar, PHP programı oluşturabilmek için gerekli temel  yazım kurallarını, yapıtaşlarını ve program akışında yararlanacağımız kontrol ögelerini ele almış olduk. Şimdi bu unsurların hepsini bir arada kullanabileceğimiz grupları, fonksiyonları ele alabiliriz.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-4558797843258791993?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/4558797843258791993/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=4558797843258791993' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4558797843258791993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/4558797843258791993'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/phpde-program-denetimi-phpprogramlama.html' title='PHP&apos;de Program Denetimi  phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-1627968693699360467</id><published>2008-03-08T04:36:00.002-08:00</published><updated>2008-10-13T13:10:24.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP&apos;nin Yapı Taşları'/><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><title type='text'>PHP'nin Yapı Taşları phpprogramlama</title><content type='html'>&lt;strong&gt;PHP'nin Yapı Taşları&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler, işlemcilerle oluşturulan deyimler ve nihayet bunların tümünü toplu olarak kullanmamızı sağlayan işlevlere (fonksiyonlara) sahiptir. PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkanına ve bunların kullanılmasını sağlayan metodlara da sahiptir. Bütün bu imkanları kullanarak, PHP ile bir veritabanından veri alarak, bunları HTML etiketlerinin değerleri olarak kullanabiliriz; Web sitemizi ziyaret eden kişilerden bilgi alabiliriz, bu bilgilerle işlemler yapabiliriz. PHP'nin çeşitli komutlarını, deyimlerini ve fonksiyonlarını kullanarak, programımızın çalıştığı Web sunucusunun bulunduğu bilgisayara da çeşitli dosya işlemleri yaptırabiliriz.&lt;br /&gt;////////////////KUTU///////////&lt;br /&gt;PHP programını durdurmak&lt;br /&gt;Şimdi belki PHP'yi durdurmayı hiç düşünmüyorsunuz; ama ilerde bir fonksiyonun vereceği sonucun bütün programın durdurulmasını gerektiği zamanlar olabilir. PHP'nin resmî el kitabına bile ilk baskısında konulması unutulmuş olan programı durdurma komutu, exit kelimesidir; hiç bir parametre almadan çalışır. &lt;br /&gt;//////////////////KUTU BİTTİ///////////&lt;br /&gt;Bu tür karmaşık uygulamalara geçebilmek için önce, PHP dilinin unsurlarını biraz yakından inceleyelim.&lt;br /&gt;Değişkenler&lt;br /&gt;Programcılıkta işlemlerimizi değişkenlerle yaparız. Değişkeni bir kap gibi düşünebilirsiniz. Sözgelimi "Gün," değişkenin adı ise bu değişkenin değeri Pazar, Pazartesi, Salı, vd., olabilir. Her değişken, türüne göre, ya bir ya da daha fazla değer tutar. Adından da anlaşılacağı gibi değişkenin değeri değişir! Bu değişikliği biz yapabiliriz; programın kendisi yapabilir.&lt;br /&gt;PHP'de de, bir çok başka bilgisayar programlama dilinde olduğu gibi değişkenlerin içine bir değer konmadan önce tanımlanması mümkündür; fakat gerekli değildir. Değişkenleri adının önüne $ işareti koyarak tanımlarız:&lt;br /&gt;$adi;&lt;br /&gt;$soyadi;&lt;br /&gt;$123;&lt;br /&gt;$sevdigiRenk;&lt;br /&gt;Değişkenler, harf, rakam veya alt çizgi (_) ile başlayabilirler; bu karakterleri içerebilirler; ama içinde boşluk veya diğer işaretler bulunamaz. PHP değişkenleri her türlü değişken tutabilirler: bir değişkenin adının yazılış şekli onun tutabileceği değerin niteliğini belirlemez. Dolayısıyla, "$adi" değişkenin değeri "Reşit" da olabilir, "1255" de olabilir.&lt;br /&gt;PHP'de genellikle değişkenleri değerini atayarak belirleriz:&lt;br /&gt;$adi = "Reşit";&lt;br /&gt;$soyadi = "Gülen";&lt;br /&gt;$123 = 123;&lt;br /&gt;$sevdigiRenk = "yeşil";&lt;br /&gt;Değişkenler, kullanıldıkları işleme, taşıdıkları değeri verirler:&lt;br /&gt;print $adi;&lt;br /&gt;komutu, eğer değeri "Reşit" ise "Browser penceresine "Reşit" kelimesini yazdırır. &lt;br /&gt;PHP'de özel bir değişkene değişken adı olarak kullanılacak değerleri de atayabiliriz:&lt;br /&gt;$adi = "Reşit";&lt;br /&gt;$degisken = "adi";&lt;br /&gt;print $$degisken;&lt;br /&gt;Burada Browser penceresine yine "Reşit" kelimesi yazılacaktır; çünkü PHP $degisken adlı değişkenin "adi" adlı değişkeni tuttuğunu bilecek ve iki Dolar işaretini görünce, $degisken'in değerini değil, onun tuttuğu değişkenin değerini yazacaktır. Bu, size şu anda karışık görünebilir. Daha sonra döngüleri gördüğümüzde bu tekniği bir satırlık kod ile yüzlerce değeri yazdırmakta kullanacağız. Bu teknik şöyle de kullanılabilir:&lt;br /&gt;$degisken  = "adi";&lt;br /&gt;$$degisken = "Reşit";&lt;br /&gt;print "$adi";&lt;br /&gt;print $$degisken;&lt;br /&gt;print "${$degisken}";&lt;br /&gt;print "${'adi'}";&lt;br /&gt;Buradaki dört "print" komutu da Browser'a "Reşit" kelimesini yazdıracaktır. &lt;br /&gt;PHP'de bir değişkenin tuttuğu değer, bir başka değişkene atanabilir. Bu ya duragan, ya da dinamik olarak yapılır. Duragan yöntemde:&lt;br /&gt;$birinci_degisken  = "Nurcan";&lt;br /&gt;$ikinci_degisken = $birinci_degisken;&lt;br /&gt;$birinci_degisken = "Tülay";&lt;br /&gt;print $ikinci_degisken;&lt;br /&gt;Buradaki "print" komutu Browser  penceresine "Reşit" kelimesini yazdıracaktır. İki değişken arasındaki değer alış-verişi birinci değişkenin tuttuğu değeri değiştirmeden önce olduğu için, ikinci değişken birinci değişkenin ilk değerini almış oldu. Fakat kimi zaman iki değişken arasındaki değer alış-verişi sürekli (dinamik) olsun isteriz. PHP, buna, ilk atama sırasında &amp; işareti kullanırsak izin verir:&lt;br /&gt;$birinci_degisken  = "Nurcan";&lt;br /&gt;$ikinci_degisken = &amp;$birinci_degisken;&lt;br /&gt;$birinci_degisken = "Tülay";&lt;br /&gt;print $ikinci_degisken;&lt;br /&gt;Buradaki "print" komutu ise Browser  penceresine "Tülay" kelimesini yazdıracaktır. Çünkü iki değişken arasındaki değer alış-verişi birinci değişkenin tuttuğu değeri değiştirmeden önce halde, ikinci değişkene birinci değişkenin değerini dinamik olarak atamış olduk. Atama işlemi sırasında &amp; işareti kullandığımız için, birinci değişkenin değeri değiştiğinde ikinci değişkenin de değeri değişecektir.&lt;br /&gt;Veri Türleri&lt;br /&gt;PHP, değişkenlere, tuttukları değere göre farklı bellek alanı  tahsis eder; bu bakımdan verilerimizin türü etkin bir programcılık açısından önem taşır. Ayrıca PHP, diğer bütün programlama dilleri gibi belirli veri türleri ile belirli işlemleri yapar veya yapamaz. Örneğin, ancak iki sayı arasında aritmedik toplama yapılabilir. İki metin tutan değişken aritmetik olarak toplanamaz; ancak içerdikleri değerler ardarda eklenebilir. Ne var ki, PHP sizin aritmetik toplama mı, yoksa ardarda ekleme mi yapmak istediğinizi bilmek durumunda değildir. (PHP'ye 'muazzam dil' dedik; içinde yapay zekâ var demedik!) Dolayısyla değerleri 5 ile 6 olan iki değişkeni topladığınız zaman ortaya 11 yerine 56 çıkarsa, kabahati PHP'de değil, değişkenlere veri atayan kişide (büyük bir ihtimalle kendinizde) aramalısınız.&lt;br /&gt;PHP açısından dünyada altı tür değer vardır:&lt;br /&gt;Tamsayı (Integer): 5,124, 9834 gibi&lt;br /&gt;Çift (Double): 3,567 gibi&lt;br /&gt;Alfanümerik (String): "Reşit" gibi&lt;br /&gt;Mantıksal (Boolean): doğru (true)/yanlış (false) gibi&lt;br /&gt;Nesne (Object)&lt;br /&gt;Dizi (Array)&lt;br /&gt;Bazı uzmanlara göre, gerçekte PHP'de mantıksal (boolean) değişken türü yoktur. B kanının sebebi, PHP'nin true (doğru) ya da false (yanlış) olarak atadığımız değerleri 1 ve boş/null değerlere çevirmesi, mantıksal olarak sorgulandığında 0 dışındaki tam ve ondalık değişkenleri TRUE, 0'ı FALSE sayması, ve boş alfanümerik değişkenleri FALSE, dolu alfanümerik değişkenleri ise TRUE olarak değerlendirmesidir. Ancak daha sonra gereceğimiz gibi PHP, Mantıksal/Boolean adında bir değişken değiştirme fonksiyonuna sahiptir ve bu tür değişkenlerin türü sorulduğunda "boolean" karşılığını verir.&lt;br /&gt;Tür Değiştirme&lt;br /&gt;Değişkenlere atadığımız değerlerinin türlerini genellikle biliriz; ama yüzlerce değişkenle uğraştığımız bir Web programında değişken türünü unutmak çok kolaydır. Kimi zaman da değişkenlere program yoluyla değer atarız; başka bir deyişle programımız bazı değişkenleri kendisi oluşturabilir, ve bunlara kendisi değer atayabilir. Bu tür program yoluyla atanan değerlerin de türünde kuşkuya kapıldığımız anlar olabilir. Bir değişkenin değerinin türü hakkında kuşkunuz varsa, en emin yol bunu PHP'nin kendisine sormaktır. Bu sorgulamayı gettype() fonksiyonu ile yaparız. &lt;br /&gt;/////////////////KUTU/////////&lt;br /&gt;Fonksiyon&lt;br /&gt;PHP'nin gettype() ve  print() gibi, kendi içinde bulunan kullanılmaya hazır bir çok fonksiyonu vardır.  Daha sonra kendi fonksiyonlarımızı yazmanın yollarını da göreceğiz. Programcılık dilinde ister dile ait olsun, ister kendimiz yazmış olalım, bir fonksiyonu kullanmaya "fonksiyon çağırma" denir. Fonksiyonlar da fonksiyon çağırabilirler. Çağrılan bir fonksiyon ya kendisinden beklenen işi yapar, ya da kendisini çağıran işleme veya fonksiyonu bir değer sunar. Buna fonksiyondan dönen değer denir.&lt;br /&gt;////////////////////KUTU BİTTİ///////////&lt;br /&gt;Şimdi, bir PHP programı yazalım, bir takım değişkenlere değerler atayalım ve bunların türlerini PHP'ye soralım. Bir düzyazı programı ile şu metni yazın ve turler.php adıyla kaydedin:&lt;br /&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Degisken Turleri&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H2&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;	$sayi  = 5;&lt;br /&gt;	print("Birinci değişkenin adı: \$sayi&lt;br&gt;");&lt;br /&gt;	print("Değeri : ");&lt;br /&gt;	print "$sayi&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $sayi ) ; //tamsayi/integer&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	$alfanumerik  = "Reşit";&lt;br /&gt;	print "İkinci değişkenin adı: \$alfanumerik&lt;br&gt;";&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$alfanumerik&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $alfanumerik ) ; //alfanümerik/string&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	$ondalik  = 5.1234;&lt;br /&gt;	print "Üçüncü değişkenin adı: \$ondalik&lt;br&gt;";&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$ondalik&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $ondalik ) ; //çift,ondalık/double&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	$mantiksal  = true;&lt;br /&gt;	print "Üçüncü değişkenin adı: \$mantiksal&lt;br&gt;";&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$mantiksal&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $mantiksal ) ; //mantıksal/boolean&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H2&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programı çalıştığımızda karşımıza şöyle bir görüntünün gelmesi gerekir:&lt;br /&gt;&lt;php00009.tif&gt;&lt;br /&gt;Burada mantıksal (boolean) değer olarak doğru anlamına true değeri atadığımız halde, PHP'nin bu değişkenin değeri olarak 1'i gösterdiğine dikkat edin. PHP'de bir fonksiyon, elde ettiği değer doğru ise sonuç olarak 1 değerini verir. (Yanlış/false değerinin neye çevrildiğini bulabilir misiniz?)&lt;br /&gt;///////////////KUTU//////////&lt;br /&gt;Escape&lt;br /&gt;turler.php dosyasını yazdıysanız, şu satırdaki, ters-bölü işareti dikkatinizden kaçmamış olmalı:&lt;br /&gt;	print "İkinci değişkenin adı: \$alfanumerik&lt;br&gt;";&lt;br /&gt;Daha önce gördük ki, tek veya çift tırnak içine de alsak, PHP, bir değişken adını gördüğü zaman onun yerine o değişkenin tuttuğu değeri yazar. PHP bunu, değişken adının başındaki $ görerek yaparak. $ işareti gibi PHP için özel anlamı olan işaretlerin anlamlandırılmasını önlemek ve bu işaretleri düz metin saymasını sağlamak için bu işaretlerin önüne ters-bölü işareti koyarız. Buna o karakteri kurtarma veya ESCaping denir. PHP'nin anlamlı işaretleri ve bunların ESCape-yazılışı şöyledir:&lt;br /&gt;\'	Tek tırnak&lt;br /&gt;\"	Çift tırnak&lt;br /&gt;\\	Ters-bölü&lt;br /&gt;\$	Dolar işareti&lt;br /&gt;\n	Yeni Satır (New Line)&lt;br /&gt;\r	Satır Başı (Return)&lt;br /&gt;\t	Sekme (Tab) karakteri&lt;br /&gt;///////////////////////////KUTU////////////////&lt;br /&gt;Kimi zaman bir değişkene atadığımız değerin türünü değiştirmek gerekir. Bunu settype() fonksiyonu ile yaparız. Elimizde böyle bir imkan var diye, bir değişkenin alfanümerik (String) olan değerini sayıya çevirebileceğini sanmayın. PHP buna çok kızar! Şu örneği de tur_degistir.php adıyla kaydedelim:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Degisken Turleri&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H2&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;	$degisken  = 5.67890;&lt;br /&gt;	print("Değişkenin  değeri : ");&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; //çift,ondalık/double&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "İlk değiştirme işlemi: Alfanümerik/String:&lt;br&gt;";&lt;br /&gt;	settype( $degisken, string ); //alfanümerik/string&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; //alfanümerik/string&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "İkinci değiştirme işlemi: Tamsayı/Integer:&lt;br&gt;";&lt;br /&gt;	settype( $degisken, integer ); //Tamsayı/Integer&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; //Tamsayı/Integer&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "Üçüncü değiştirme işlemi: Ondalık/Double:&lt;br&gt;";&lt;br /&gt;	settype( $degisken, double ); //çift,ondalık/double&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; //çift,ondalık/double&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "Dördüncü değiştirme işlemi: Mantıksal/Boolean:&lt;br&gt;";&lt;br /&gt;	settype( $degisken, boolean ); // Mantıksal/Boolean&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; // Mantıksal/Boolean&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H2&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programı çalıştırdığımızda, ilk atadığımız değerin ondalık/double olarak belirlendiğine dikkat edin. Bu değerin türünü alfanümerik/string olarak değiştirdiğimizde değişmediğini görüyoruz. Fakat tamsayı/integer'a çevirdiğimizde PHP değerin tamsayı bölümünü alıyor; ondalık-kesir bölümünü atıyor. Nitekim daha sonra değişkerin türünü yeniden ondalık yaptığımız halde, atılan bu bölüm geri gelmiyor. Son olarak değişkeni mantıksal ifade olarak değiştirdiğimizde, değerin doğru/true olduğunu anlıyoruz; değer olarak bize 1 dönüyor. PHP, sıfır dışındaki tüm değerleri doğru/true'ya çevirir; sıfır'ı ise yanlış/false olarak atar ve boş/null değer verir.&lt;br /&gt;&lt;php00010.tif&gt;&lt;br /&gt;Şu anda PHP'yi tam bilemediğimiz için nerede kullanılır kestiremiyoruz, ama diyelim ki burada olduğu gibi, değişkeni bir daha düzelmeyecek şekilde değişikliğe uğratmak istemeyebiliriz; fakat yine de değerinin türünü değiştirmek isteyebiliriz. Bunu da nerede kullanabiliriz, şu anda bilmiyoruz. Ama diyelim ki, böyle bir işlem yapmaya ihtiyacımız oldu! Hatırlıyor musunuz, biraz önce özel bir şekilde bir değişkene başka bir değişkenin adını değer olarak vererek, aslında bu değişkenin ilk değişkenin değerini almasını sağlamıştık. Burada da aynı tekniği kullanabiliriz. Bu kodu da tur_kopyala.php adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP'de Degisken Turleri Kopyalama (Casting)&lt;/TITLE&gt;&lt;br /&gt;&lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1254"&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H2&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;	$degisken  = 3.1418;&lt;br /&gt;	print("Değişkenin  değeri : ");&lt;br /&gt;	print "$degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $degisken ) ; //çift,ondalık/double&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "İlk kopyalama işlemi: Alfanümerik/String:&lt;br&gt;";&lt;br /&gt;	$kopya_degisken =  ( string ) $degisken; //alfanümerik/string&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$kopya_degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $kopya_degisken ) ; //alfanümerik/string&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "İkinci kopyalama işlemi: Tamsayı/Integer:&lt;br&gt;";&lt;br /&gt;	$kopya_degisken =  ( integer ) $degisken; //Tamsayı/Integer&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$kopya_degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $kopya_degisken ) ; //Tamsayı/Integer&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "Üçüncü değiştirme işlemi: Ondalık/Double:&lt;br&gt;";&lt;br /&gt;	$kopya_degisken =  ( double ) $degisken; //çift,ondalık/double&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$kopya_degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $kopya_degisken ) ; //çift,ondalık/double&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;&lt;br /&gt;	print "Dördüncü kopyalama işlemi: Mantıksal/Boolean:&lt;br&gt;";&lt;br /&gt;	$kopya_degisken =  ( boolean ) $degisken; // Mantıksal/Boolean&lt;br /&gt;	print "Değeri : ";&lt;br /&gt;	print "$kopya_degisken&lt;br&gt;";&lt;br /&gt;	print("Türü : ");&lt;br /&gt;	print gettype( $kopya_degisken ) ; // Mantıksal/Boolean&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;	print "&lt;br&gt;";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H2&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Bu programın can alıcı noktası örneğin "$kopya_degisken =  ( boolean ) $degisken;" şeklindeki komut; burada $kopya_degisken adlı değişkene $degisken adlı değişkenin değerini (eşittir işareti ile) kazandırırken, arada yeni değişkenin kazanmasını istediğimiz türün adını parantez içinde yazıyoruz. Burada gerçekte, $degisken adlı değişkenin değerine hiç bir şey olmuyor. Bu programı çalıştırırsanız, ilk değerin ontalık kısmının önceki örnekte olduğu gibi değişim işlemi sonunda tamamen yok olmadığını görebilirsiniz.&lt;br /&gt;&lt;php00011.tif&gt;&lt;br /&gt;$degisken adlı değişkenin değeri değişmeden durduğu için üçüncü adımda yıptığımız ondalık tür olarak kopyalama sonucu yeni değişkenin değeri yine kesiri ile karşımıza çıkıyor. &lt;br /&gt;////////////////KUTU///////////&lt;br /&gt;Dört yararlı fonksiyon&lt;br /&gt;PHP'de değişken değer türü değiştirmekte kullanabileceğimiz kullanılmaya hazır fonksiyon vardır. ilerde döngüleri ele aldığımızda daha çok anlam kazanacak olan bu değişkenleri şimdilik bir kenara kaydedin:&lt;br /&gt;isset() ve unset()&lt;br /&gt;PHP, bir değişken tanımlandığı anda, sanki içinde değer varmış gibi, bilgisayarın belleğinde yer ayırır. Bu bazen bilgisayarın kıt kaynaklarını zorlayabilir. isset() fnksiyonu, PHP'nin bir değişkenin içinde değer  bulunup bulunmadığını sınamasını sağlar. unset() ise varolan bir değişkeni yok eder. Bu iki fonksiyonu birlikte kullanabiliriz ve boş değişkenleri yok ederek, bilgisayarın belliğinde yer açabiliriz:&lt;br /&gt;if (isset($bir_degisken)) {&lt;br /&gt;print( $bir_degisken );&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;unset($bir_degisken);&lt;br /&gt;}&lt;br /&gt;Bu kod parçası, $bir_degisken isimli dğişkenin içi boş değişse, içeriğini görüntüleyecek, içi boş ise varlığına son verecektir.&lt;br /&gt;empty()&lt;br /&gt;isset() fonksiyonun tersi işleve sahiptir; bir değişkene değer atanmamışsa, veya değeri sıfır veya boş alfanümerik (null string) ise, doğru (True) değeri verir.&lt;br /&gt;$bir_degisken = 123;&lt;br /&gt;echo empty($bir_degisken);&lt;br /&gt;$bir_degisken = "";&lt;br /&gt;echo empty($bir_degisken);&lt;br /&gt;Bu program parçası Browser penceresine sadece empty() fonksiyonun doğru sonuç verdiği birinci echo() deyiminde 1 yazdıracaktır.&lt;br /&gt;is_string(),is_integer(),is_double(),  &lt;br /&gt;Sınadıkları değişkenin aradıkları türden değer içermesi halinde doğru 'True) sonuç verirler. &lt;br /&gt;&lt;?php&lt;br /&gt;	$a = 6.567;&lt;br /&gt;if (is_double($a)) {&lt;br /&gt;	print ("A Double'dır&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	$b = "Reşit";&lt;br /&gt;if (is_double($a)) {&lt;br /&gt;	print ("B String'dir&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	$c = 6;&lt;br /&gt;if (is_int($c)) {&lt;br /&gt;	print ("C Integer'dır&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Bu kod, Browser penceresine "A double'dır, B String'dir,  C Integer'dır" yazdıracaktır. PHP'de bu fonksiyonlara benzeyen fakat başka tür değer arayan şu fonksiyonlar da vardır: is_array(), is_object.&lt;br /&gt;intval(), doubleval(), doubleval()&lt;br /&gt;Bir değişkenin değerinin türünü başka bir türe çevirmeye yararlar. intval(), ortaya çıkartacağı tamsayı değişkenin 10 tabanlı (decimal) veya 16 tabanlı (hexadecimal) olmasını sağlayan ikinci bir argüman alabilir:&lt;br /&gt;&lt;?php&lt;br /&gt;	$a = "123ABC";&lt;br /&gt;	$b = inval($a, 16)&lt;br /&gt;	print ($b);&lt;br /&gt;?&gt;&lt;br /&gt;Bu program Browser penceresine, 123'ün hexadecimal ifadesi olan "1194666" yazdıracaktır.&lt;br /&gt;İşlemciler (Operatörler)&lt;br /&gt;Yukarıdaki örnekleri birlikte yaptıysak, = işaretini bol bol kullandık ve böylece PHP'nin bir çok operatöründen biriyle tanıştık. Buna PHP dilinde "atama operatörü" denir. Bu işlemci sadece yukarıda kullandığımız gibi, bir değişkenin bir değere eşitliğini ilan etmek amacıyla kullanılmaz. Örneğin:&lt;br /&gt;print ( $sayi = 123 ) ; &lt;br /&gt;ifadesinde olduğu gibi, bir fonksiyonun içinde de hem atama işlemi yapılabilir; hem de işlem yürütülür. PHP'nin aritmetik, birleşik-atama, birleştirme, karşılaştırma ve mantıksal sınama operatörleri vardır. &lt;br /&gt;Aritmetik işlemciler:&lt;br /&gt;+	Toplama			6+5	=	11&lt;br /&gt;-	Çıkartma			6-5	=	1&lt;br /&gt;/	Bölme			6/5	=	1.2&lt;br /&gt;*	Çarpma			6*5	=	30&lt;br /&gt;%	Kalan (Modulus)	6%5	=	1&lt;br /&gt;Aritmetik işlemleri gerçek sayılarla yaptığımız gibi, tuttuğu değer sayı olan değişkenlerle de yapabiliriz. &lt;br /&gt;Daha önce, PHP'de değişken tanımlar ve bunlara değer atarken sayı olan değişkenleri tırnak işareti kullanmadan, alfanümerik değişkenleri ise tırnak içinde yazdığımızı hatırlayacaksınız. Bu, geleneksel hale gelmiş olan bir programcılık alışkanlığıdır. PHP, tırnak kullanmasanız da bir değişkenin sayı olup olmadığını anlar; daha sonra bu değişkenlerle aritmetik işlem yapabilir. PHP ayrıca rakamla başlayan alfanümerik değişkenleri sayı olarak kullanmaya kalktığınızda, bu değerin başındaki bütün rakamları sayı olarak kabul eder. PHP açısından harf veya işaretle başlayan alfanümerik değişkenlerin sayı olarak değeri sıfırdır. Örnek:&lt;br /&gt;$a = 6;&lt;br /&gt;$b = "22/A"&lt;br /&gt;print ($a + $b)&lt;br /&gt;sonuç olarak 28'i verecektir; veya &lt;br /&gt;$a = 6;&lt;br /&gt;$b = "A/22"&lt;br /&gt;print ($a + $b)&lt;br /&gt;sonuç olarak 6 çıkacaktır.  Bu küçük deneyi yaparsanız, PHP ile program yazarken hangi değişkenin ne sonuç vermesi gerektiğini dikkatle düşünmek zorunda olduğunuzu görürsünüz. Bir kişinin geliri ile adresini toplamak, programcı olarak arzu ettiğiniz bir işlem olmayabilir!&lt;br /&gt;Bununla birlikte elimizde bir kişinin adı ve soyadı ayrı değişkenler halinde ise, bunları birbirine ekleyerek (concatenation) ortaya yeni bir alfanümerik değişken çıkartabiliriz:&lt;br /&gt;&lt;?php&lt;br /&gt;	$adi = "Reşit";&lt;br /&gt;	$soyadi = "Muhtar";&lt;br /&gt;	$adi_soyadi = $adi . " " . $soyadi;&lt;br /&gt;	print ("&lt;br&gt;");&lt;br /&gt;	print ($adi_soyadi);&lt;br /&gt;	print ($adi . "'nın soyadı " . $soyadi . "'dir.")&lt;br /&gt;?&gt;&lt;br /&gt;Bu örnekte, sadece ekleme yoluyla yeni bir değişken oluşturmakla kalmıyoruz; fakat alfanümerik değişkenleri, başka metinlerle de birbirine ekleyebildiğimizi görüyoruz. Bu işlemi nokta işaretiyle (.) yapıyoruz. Bu işlemciyle sadece değişkenlerin değerlerini değil fakat metinleri de birbirine ekleyebiliriz:&lt;br /&gt;&lt;?php&lt;br /&gt;print ("İyileri iyikleri ile alkışla; " . "..." . "ve sen soluklarında daima Mesîh ol..! ")&lt;br /&gt;?&gt;&lt;br /&gt;PHP'nin atama işlemcisinin eşittir (=) işareti olduğunu hatırlıyorsunuz birleşik-atama (combined-assignment) işlemcileri, bu işarete diğer aritmetik işlemciler eklenerek oluşturulur. &lt;br /&gt;İşlemci	Örnek		Anlamı&lt;br /&gt;+=	$a += 5	$a = $a + 5&lt;br /&gt;-=		$a -= 5		$a = $a - 5&lt;br /&gt;/=		$a /=5		$a = $a / 5&lt;br /&gt;*=	$a *= 5		$a = $a * 5&lt;br /&gt;%=	$a %= 5		$a = $a % 5&lt;br /&gt;.=		$a .= "metin"		$a = $a" metin"&lt;br /&gt;Bu işlemi zihnimizde, "A değişkeninin mevcut değerine 5 ekle, çıkan sonucu A değişkenin yeni değeri yap!" şeklinde canlandırabiliriz.&lt;br /&gt;/////////////////KUTU//////////////&lt;br /&gt;Bir Arttırmak veya Azaltmak için&lt;br /&gt;Değerleri sadece 1 arttırmak veya azaltmak için PHP, bir kolaylık sağlar:&lt;br /&gt;$a++veya ++$a: $a'nın değerini 1 arttırır;&lt;br /&gt;$a--veya --$a: $a'nın değerini 1 eksiltir.&lt;br /&gt;++ veya -- işaretinin değişken adından önce veya sonra olmasının sonucu farklı olur. İşaretler değişkenin adından önce ise PHP önce değişkenin değerini bir arttırır veya eksiltir, sonra bu yeni değeri işleme katar; işaretler değişken adından sonra ise, PHP değişkenin o andaki değerini işleme kadar, sonra değeri bir arttırır veya eksiltir.&lt;br /&gt;/////////////////////KUTU BİTTİ/////////////&lt;br /&gt;PHP'nin karşılaştırma yapması için kullandığımız işlemciler ise işlem işaretinin sağı ve solundaki değerleri veya değişkenlerin değerlerini işaretin belirttiği karşılaştırmayı yaptıktan sonra ortaya ya doğru (true) ya da yanlış (false) sonucunu çıkartırlar. Söz gelimi, değeri 6 olan değişkenin 5'ten büyük olup olmadığını sınarsak, sonuç doğru; 5'ten küçük olup olmadığını sınarsak sonuç yanlış çıkacaktır. PHP'nin karşılaştırma işlemcileri şunlardır:&lt;br /&gt;İşlemci	Örnek		Örnek		$a=6 ise:&lt;br /&gt;==	eşitse		$a == 5	Yanlış/False&lt;br /&gt;!=		eşit değilse		$a != 5		Doğru/True&lt;br /&gt;===	aynı ise		$a === 5	Yanlış/False&lt;br /&gt;&gt;		büyükse		$a &gt; 5		Doğuru/True&lt;br /&gt;&lt;		küçükse		$a &lt; 5		Yanlış/False&lt;br /&gt;&lt;=	küçükse		$a &lt;= 5	Yanlış/False&lt;br /&gt;		veya eşitse		&lt;br /&gt;&gt;=	büyükse		$a &gt;= 5	Doğru/True&lt;br /&gt;		veya eşitse&lt;br /&gt;PHP'nin karşılaştırma işlemcileri hem tam ve ondalık sayı türü değerlerle, hem de alfanümerik değerlerle kullanılabilir.&lt;br /&gt;Daha ileri aşamalarda, bazen değişkenlerimizin karşılaştırmasının bu kadar basit olamayacağını; kimi zaman iki grup değişkenin karşılaştırılması gerektiği durumların bulunduğu göreceğiz. Diyelim ki, bir öğrencinin başarılı sayılması için hem vize notunun, hem de yılsonu sınav notunun belirli sayılardan büyük olması gerekiyor. Bu durumu ancak karmaşık-mantıksal sınamadan geçirmemiz gerekir. Bu sınamayı iki ayrı sınama sonucu ile birlikte kullanırız. Örneğin:&lt;br /&gt;vize notu yeterli  - final notu yetersiz = kalır  (yanlış/false)&lt;br /&gt;vize notu yeterli - final notu yeterli = geçer (doğru/true)&lt;br /&gt;PHP'de bu karşılaştırmayı iki grubun arasına koyduğumuz işaretlerle yaparız İşaretin sağ ve sol tarafının doğruluğu veya yanlışığı işarete göre nihai sonucun doğru veya yanlış olmasını  sağlar. Bu karşılaştırmaları yaparken şu işlemcileri kullanırız:&lt;br /&gt;İşlemci	Adı			Anlamı			Örnek&lt;br /&gt;||		veya		sol veya sağ doğru 		doğru || yanlış =  doğru&lt;br /&gt;or		veya		sol veya sağ doğru 		doğru || yanlış =  doğru&lt;br /&gt;&amp;&amp;	ve			sol ve sağ doğru 		doğru || yanlış =  yanlış&lt;br /&gt;and	ve			sol ve sağ doğru 		doğru || yanlış =  yanlış&lt;br /&gt;Xor	Şartlı-veya		Sadece sol veya sağ doğru 	doğru || yanlış =  doğru&lt;br /&gt;!		Değil		sol veya sağ yanlış		doğru || yanlış =  doğru&lt;br /&gt;"veya" ve "ve" sınamaları için iki ayrı işlem işareti bulunmasının sebebi, PHP'nin işlem sırasıyla ilgilidir. Birazdan oraya geliyoruz. Şimdi, kavranması kolay olmayan ikili mantıksal sınamalara bir örnek verelim; yukarıda öğrencinin durumunu PHP komutu olarak yazalım. &lt;br /&gt;&lt;?php&lt;br /&gt;	$vize = 45;&lt;br /&gt;	$final = 65;&lt;br /&gt;	if ($vize &gt;= 50 &amp;&amp; $final &gt;= 50) {&lt;br /&gt;	print ("Öğrenci geçti!");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Öğrenci kaldı!");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Mantıksal karşılaştırma işlemleri daha da karmaşık olabilir. Örneğin, öğrencinin geçmiş sayılması için yılsonu vize ve final notlarının 45'dan yüksek, ve ya birinci sömester notunun ya da vize ve final notlarının ortalamasının 65'den yüksek olması şartı aranabilir. (Kabul; kötü bir örnek oldu. Ama sırf alıştırma için!) Bu durumda kodu şöyle yazmamız gerekirdi:&lt;br /&gt;&lt;?php&lt;br /&gt;	$vize = 45;&lt;br /&gt;	$final = 65;&lt;br /&gt;	$ilk_sem = 45; &lt;br /&gt;	$ortalama = ($vize + $final) / 2;&lt;br /&gt;	if (($vize &gt;= 45 &amp;&amp; $final &gt;= 45) and ($ilk_se &gt;= 65 || $ortalama &gt;= 65)) {&lt;br /&gt;	print ("Öğrenci geçti!");&lt;br /&gt;	}&lt;br /&gt;	else {&lt;br /&gt;	print ("Öğrenci kaldı!");&lt;br /&gt;	}&lt;br /&gt;?&gt;&lt;br /&gt;Burada, PHP önce || veya &amp;&amp; işaretinin sonucunu bulacak sonra and veya or işlemcisinin gereğini yapaçaktır. Bu kodun vereceği sonucu, bilgisayarda çalıştırmadan tahmin edebilir misiniz? İpucu: Bu öğrencinin yerinde olmak istemezdim!&lt;br /&gt;İşlem önceliği deyince.. Bütün programlama dilleri gibi PHP için de işlemlerin hangi sırada yapıldığı önem taşır. "5 + 4 * 2" işleminin sonucu, önce 5 ile 4'ün toplanması ve sonucun 2 ile çarpılması halinde başka, 4'ün 2 ile çarpılması ve sonucun 5 ile toplanması halinde başka olacaktır. Bu bakımdan, PHP'nin hangi işlemi önce yaptığı, hangi işlemi sonra yaptığını bilmemiz gerekir. PHP'deki işlemlerin yapılış sırası şöyledir:&lt;br /&gt;++ ve --&lt;br /&gt;/  *   %&lt;br /&gt;+  -&lt;br /&gt;&lt;  &lt;=   =&gt;  &gt;&lt;br /&gt;==  ===  |  =&lt;br /&gt;&amp;&amp;&lt;br /&gt;||&lt;br /&gt;=  +=  -=  /=  %=  .=&lt;br /&gt;and&lt;br /&gt;xor&lt;br /&gt;or&lt;br /&gt;r.&lt;br /&gt;Sabit Değerler&lt;br /&gt;İster Web, ister Web-dışı amaçlı olsun, bir programın bazen başındanh sonuna kadar değeri değişmeyen değişkene ihtiyacı olabilir. "Değeri değişmeyen değişken" teriminin anlamsız olduğu kanısında iseniz, bunlara sabit değerler adını da verebilirsiniz! PHP'de sabit değerler, Script boyunca değişmeden kalır.&lt;br /&gt;Sabit değerler, değişkenlerden farklı şekilde oluşturulur. Bunun için PHP'nin define() fonksiyonunu kullanırız. Bu fonksiyonun yazım kuralı şöyledir:&lt;br /&gt;define ("SABIT_DEGER", değer);&lt;br /&gt;Burada SABIT_DEGER yerine, tanımlamak istediğimiz sabit değere vereceğimiz isim, değer yerine de sabit değeri yazarız. Örnek:&lt;br /&gt;&lt;?php&lt;br /&gt;	$Dolar_miktar = 125;&lt;br /&gt;	define ( "DOLAR_KURU", 625675);&lt;br /&gt;	$TL_Tutar = $Dolar_miktar * DOLAR_KURU;&lt;br /&gt;	print ($TL_Tutar);&lt;br /&gt;?&gt;&lt;br /&gt;Burada tanımladığımız DOLAR_KURU sabit-değeri, tıpkı bir değişken gibi kullanılabilir. Fakat bir sabit değeri tanımladıktan sonra içeriğini değiştiremezsiniz. Sabit değer ile aynı ismi taşıyan değişken oluşturmak mümkündür; ancak aynı ismi taşısa da bir sabit ile değişkeni (birinin adının önünde $ işareti bulunduğu için) karıştırmak kolay olmasa gerek.&lt;br /&gt;Tanımlanmış olan bir sabiti yeniden oluşturamayız; ama buna teşebbüs ettiğimizde PHP  hata vermez. Bir sabit değerin oluşturulmuş olup olmadığını defined() fonksiyonu ile anlayabiliriz:&lt;br /&gt;&lt;?php&lt;br /&gt;	$Dolar_miktar = 125;&lt;br /&gt;	if (defined( "DOLAR_KURU" )) {&lt;br /&gt;	echo ("Sabit değer daha önce tanımlanmıştı.&lt;br&gt;");&lt;br /&gt;	}&lt;br /&gt;	define ( "DOLAR_KURU", 625675);&lt;br /&gt;	$TL_Tutar = $Dolar_miktar * DOLAR_KURU;&lt;br /&gt;	print ($TL_Tutar);&lt;br /&gt;?&gt;&lt;br /&gt;Bu programı, bu şekilde ve define() komutunu en üst satıra alarak çalıştırırsanız, ikinci çalıştırışınızda programın sabit değeri yeniden oluşturmayı reddettiğini görecektiniz. Sabit değerleri, Web sitesinde ziyaretçilerin girdiği verilerden alarak kendiliğinden oluşturan bir program yazdığınızda, defined() fonksiyonu mantıksal hata yapmanızı önler.&lt;br /&gt;PHP'nin kullanılmaya hazır bir kaç sabid değeri vardır. True (doğru) değeri 1 olan, False (yanlış) ise değeri sıfır sayısı veya boş alfanümerik olan iki sabittir. Diğer sabitler şunlardır:&lt;br /&gt;__FILE__ : O anda çalışmakta olan PHP dosyasının adı (kelimenin önünde ve sonunda iki alt-çizgi var);&lt;br /&gt;__LINE__ : Bu ifadenin yer aldığı satırın sayısı (kelimenin önünde ve sonunda iki alt-çizgi var);&lt;br /&gt;PHP_VERSION: PHP'nin sürümü (İki kelimenin arasında bir alt-çizgi var);&lt;br /&gt;PHP_OS: PHP'nin çalıştığı işletim sistemi (İki kelimenin arasında bir alt-çizgi var);&lt;br /&gt;PHP_VERSION : PHP'nin sürümü (İki kelimenin arasında bir alt-çizgi var);&lt;br /&gt;Bunlara ek olarak, E_ERROR, E_WARNING, E_NOTICE ve E_PARSE şeklinde hata durumunda hatanın çeşitli özelliklerini bildiren sabit değerleri de kullanabiliriz.&lt;br /&gt;PHP hakkında çok daha geniş bilgiyi phpinfo() fonksiyonunu çağırak alabilirsiniz.&lt;br /&gt;//////////////////KUTU//////////////&lt;br /&gt;Tarih ve saat Verisi&lt;br /&gt;PHP, o andaki zaman bilgisini, saat, dakika, saniye ve  salise olarak; tarih bilgisini yıl, ay, gün (sayı veya isim olarak), programımızın herhangi bir yerinde bize bildirebilir. Bu bilgiyi Web sunucusunda istediğimiz anda, muhtemelen sunucunun bulunduğu bilgisayarın sistem saatinden alacak olan PHP, sunucu programında farklı bölgesel ayarlar için gerekli düzenleme yapılmışsa, bu imkandan yararlanarak bize sunucunun değil, arzu ettiğimiz bölgenin saat ve tarihini bildirebilir.&lt;br /&gt;Özellikle Türkiye'de olmayan bir sunucuda bu imkanın bulunup bulunmadığını, ancak sınayarak veya sistem yöneticisine sorarak öğrenebiliriz. Böylebir sıNama için şu kodları programınızın başına koyun:&lt;br /&gt;&lt;?php &lt;br /&gt;setlocale ("LC_TIME", "TR");&lt;br /&gt;print (strftime ("Türkçe bugün günlerden: %A "));&lt;br /&gt;?&gt;&lt;br /&gt;Browser penceresinde "Türkçe bugün günlerden Sunday" yazısını okursanız, sunucuda Türkçe için bölgesel ayar desteği yok demektir!&lt;br /&gt;PHP'nin zaman ve tarih belirlemekte kullanabileceğiniz başlıca fonksiyonu getdate() ise şxöyle kullanılır.&lt;br /&gt;getdate()	Tarih ve saat bilgisini alır ve ve vereceğiniz bir isimdeki dizi-değişkende kaydeder. Örnek:&lt;br /&gt;	$saat_tarih = getdate()&lt;br /&gt;	Bu durumda, $saat_tarih dizi değişkeninde sırasıyla şu bilgiler yer alır:&lt;br /&gt;	32	saniye&lt;br /&gt;	57	dakika&lt;br /&gt;	6	saat&lt;br /&gt;	30	ayın gün sayısı (1-31)&lt;br /&gt;	0	haftanın gün sayısı (1-7)&lt;br /&gt;	7	ayın sayısı (1-12)&lt;br /&gt;	2000	yıl&lt;br /&gt;	211	yılın kaçıncı günü&lt;br /&gt;	Sunday	günün adı &lt;br /&gt;	July	ayın adı&lt;br /&gt;	964929452	Unix sistemlerinde Epoch biçiminde zaman bilgisi&lt;br /&gt; PHP'nin tarih ve saat bilgisini biçimlendirmede yararlandığımız date() fonksiyonunu daha sonra metin biçimlerdirme bölümünde ele alacağız&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-1627968693699360467?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/1627968693699360467/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=1627968693699360467' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1627968693699360467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1627968693699360467'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/phpnin-yap-talar-phpprogramlama.html' title='PHP&apos;nin Yapı Taşları phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-3070564401851888463</id><published>2008-03-08T04:36:00.001-08:00</published><updated>2008-10-13T13:10:24.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Php dili'/><title type='text'>Php dili  phpprogramlama</title><content type='html'>&lt;strong&gt;PHP Dili &lt;/strong&gt;&lt;br /&gt;PHP bir Script dilidir; PHP ile yazdığınız "programlar" birer düzyazı dosyasıdır. Dil ögelerini ayrıntılı olarak ele almadan önce  bir iki yazım kuralından söz edelim.&lt;br /&gt;PHP yorumlayıcısı, bu "programı" çalıştırabilmek için dosyanın içinde PHP komutlarını arar. PHP komutları birinci bölümde gördüğümüz gibi iki şekilde yazılabilir:&lt;br /&gt;1. &lt;?PHP .... ?&gt;&lt;br /&gt;2. &lt;? .... ?&gt;&lt;br /&gt;Bunlara PHP komut ayracı denir; birinci türü uzun veya standart ayraç sayılır; ikincisine ike "kısa ayraç" denir. PHP yorumlayıcısının kısa ayraç kullanmasını istemiyorsak, PHP.ini dosyasındaki, short_open_tag = On: satırını short_open_tag = Off; yapmak yeter. Bununla birlikte uzun vadede, PHP programlarınızda HTML yerine XML kullanmak istiyorsanız, şimdiden elinizi uzun ayraca alıştırmanız yerinde olur; çünkü XML etiketleri "&lt;?xml"  şeklinde başlar ve "?&gt;" şeklinde biter. &lt;br /&gt;ASP ile çalışan Web programcıları "&lt;?" ve ?&gt;" yerine sık sık "&lt;%" ve "%&gt;" yazarlar! PHP dilini gelişterinler., çok yaygın olan bu hatanın PHP programlarının çalışmasına engel olmasını önlemek için bize bir kolaylık sağlıyorlar. Eğer ASP ile çalışan ve daha sonra PHP'ye geçen bir programcı iseniz, PHP.ini dosyasını açarak, asp_tags = Off; satırını short_open_tag = On; yapabilirsiniz. Şimdi artık rahatça ASP ayracını PHP yazmak için kullanabilirsiniz!&lt;br /&gt;PHP komutlarınızı daha uzun olmakla birlikte &lt;SCRIPT&gt; etiketiyle de kullanabilirsiniz. Yukarıdaki örnekte oluşturduğumuz merhaba.PHP'yi açın ve şu şekilde değiştirerek, merhaba2.PHP adıyla kaydedin:&lt;br /&gt;	&lt;HTML&gt;&lt;br /&gt;	&lt;SCRIPT LANGUAGE="PHP"&gt; &lt;br /&gt;		print ("Merhaba Dünya!");&lt;br /&gt;	&lt;/SCRIPT&gt;&lt;br /&gt;	&lt;/HTML&gt;&lt;br /&gt;Web sunucusunda bu programı açarsanız, aynı sonucu aldığınızı göreceksiniz. Burada bir yanlış anlamaya yol açmayalım. Javascript veya VBScript gibi HTML kodlarının içine gömdüğümüz ve HTML sayfasının içinde, Web ziyaretçimizin bilgisayarına gönderilen ve orada (istemci-tarafından) icra edilen ve yine aynı şekilde SCRIPT&gt;  etiketi içine koyduğumuz Script kodları ile burada &lt;SCRIPT&gt; etiketi ile ifad eettiğimiz PHP kodlarının icra yerini karıştırmayalım. PHP, nasıl bir ayraç ve etiket ile yazarsak yazalım, daima sunucuda çalıştırılar ve ziyaretçiye asla PHP kodları gösterillmez. merhaba2.PHP'nin çalıştığı Browser'da kaynağı görüntülersek, istemciye gelen kodların saf-ve-temiz HTML olduğunu göreceğiz.&lt;br /&gt;&lt;php00008.tif&gt;&lt;br /&gt;PHP kodlarımız, oluşturulmasını istediğimiz sayfanın HTML kodları ile tabir yerinde ise içiçe yazılır. Bunun bir örneği olarak yukarıdaki dosyayı şöyle değiştirerek, merhaba3.adıyla kaydedin:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP ile Merhaba&lt;/TITLE&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H1&gt;&lt;br /&gt;&lt;?PHP&lt;br /&gt;	print "Merhaba Dünya!";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H1&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/CENTER&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;Sayfamızın görüntüsünde hiç bir değişiklik olmamakla birlikte, Browser'a giden HTML kodları önemli ölçüde değişmiş olacaktır. &lt;br /&gt;Gerçi burada henüz ihtiyacımız yok; çünkü bir bakışta yazdığımız kodun marifetini anlayabiliyoruz; ama ciddî PHP programcılığına başladığımız zaman, hangi satırda neye niyet ettiğimi anlamamız daima mümkün olmayabilir. Biz kendi programımızı satır satır ezberlesek bile, işbirliği yaptığımız diğer Web programcılarının programımızı anlamalarını sağlamamız gerekir. Bunu, yorum satırları ile yapabiliriz. PHP ayraçları içinde iki türlü yorum bulunabilir: Çok-satırlı yorumlar ve tek satırlı yorumlar. Birinci grubu, başına "/*" ve sonuna "*/* işaretleri koyarak, ikinci grubu ise sadece başına *//* işareti koyarak belirtiriz:&lt;br /&gt;&lt;HTML&gt;&lt;br /&gt;&lt;!- - Bu satır HTML'in yorum satırı&lt;br /&gt;Buraya istediğimiz kadar yorum yazabiliriz..&lt;br /&gt;Browser bu satırları dikkate almaz - - &gt;&lt;br /&gt;&lt;HEAD&gt;&lt;br /&gt;&lt;TITLE&gt;PHP ile Merhaba&lt;/TITLE&gt;&lt;br /&gt;&lt;/HEAD&gt;&lt;br /&gt;&lt;BODY&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;br /&gt;&lt;B&gt;&lt;br /&gt;&lt;H1&gt;&lt;br /&gt;&lt;?PHP&lt;br /&gt;/* &lt;br /&gt;Bu satır da PHP'nin çok-satırlı yorum bölümü.. &lt;br /&gt;Bunu da PHP yorumcusu asla dikkate almaz&lt;br /&gt;Buraya istediğimiz kadar yorum yazabiliriz.&lt;br /&gt;*/&lt;br /&gt;	print "Merhaba Dünya!";&lt;br /&gt;// Bu ise PHP'nin tek satırlı yorum bölümü&lt;br /&gt;// Bu satırları da PHP yorumcusu dikkate almayacaktır.&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/H1&gt;&lt;br /&gt;&lt;/B&gt;&lt;br /&gt;&lt;/CENTER&gt;&lt;br /&gt;&lt;/BODY&gt;&lt;br /&gt;&lt;/HTML&gt;&lt;br /&gt;PHP'rir bir diğer yorum işareti ise # (Diyez) işaretidir. Bu işaretin başında olrduğu satır da PHP tarafından dikkate alınmaz:&lt;br /&gt;&lt;?PHP&lt;br /&gt;# Bu satır PHP'nin çok-satırlı yorum bölümü.. &lt;br /&gt;# Bunu da PHP yorumcusu asla dikkate almaz&lt;br /&gt;# Buraya istediğimiz kadar yorum yazabiliriz.&lt;br /&gt;	print "Merhaba Dünya!";&lt;br /&gt;?&gt;&lt;br /&gt;Diyez ile yorum haline getirdiğimiz satırların sonuna başka işaret koymaya gerek yoktur.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-3070564401851888463?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/3070564401851888463/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=3070564401851888463' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/3070564401851888463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/3070564401851888463'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-dili-phpprogramlama.html' title='Php dili  phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-1384044904266287768</id><published>2008-03-08T04:34:00.000-08:00</published><updated>2008-10-13T13:10:24.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='php ye giriş'/><title type='text'>php ye giriş    phpprogramlama</title><content type='html'>&lt;strong&gt;PHP'ye Giriş&lt;/strong&gt;C/C++, Pascal, hatta Visual Basic bilen kişiler için PHP öğrenmek hemen hemen bir öğleden sonrayı ayırmak suretiyle yapılabilecek bir iştir. Bu dillere aşina olmayanlar ise belki bir kaç öğleden sonralarını ayırmak zorunda kalabilirler! PHP, bir Script dilidir; yani kodları düz yazı dosyaları halinde kaydedilir ve kullanılacağı ortamda bir yorumlayıcı tarafından yorumlanır. Bu, PHP ile yazacağınız programları, derlemek yani ortaya bir EXE veya çalıştırılabilir başka bir dosya çıkartmaya gerek olmadığı anlamına gelir. Fakat PHP Script'lerinizi çalıştırabilmek için bu dili bilen bir programa ihtiyacınız vardır. Bu programın tek başına (komut istemci penceresinde veya terminal ekranında) çalışması mümkün olduğu gibi, Web Server tarafından da çalıştırılabilir olması gerekir. Başka bir deyişle Web Sunucu programının PHP anlar hale getirilmesini sağlamak zorundayız. &lt;br /&gt;PHP yorumcusu, bugün Zend-çekirdeği adı verilen bir Scripting teknolojine dayalı olarak, Zeev Suraski ile Andi Gutmans tarafından sıfırdan, tamamen yeniden yazılmış bulunuyor. Zend, tıpkı Windows Script Host ve mesela Visual Basic for Applications (VBA) gibi, işletim sistemine kendisi ile uyumlu Script dilleriyle yazılmış programları çalıştırma imkanı kazandıran bir teknolojidir (Zend konusunda ek bilgiyi Internet'te www.zend.com adresinde bulabilirsiniz.) Bugün bu dilin resmî adı "PHP: Hypertext Preprocessor" (Hiper-metin ön-işlemcisi) olarak değiştirildi, ve çeşitli Web Server'ların PHP dili anlaması için gerekli yorumlayıcıları yeniden üretlidi. 20 Ocak 200'de İsrail'de PHP'nin ilk uluslararası konferansı yapıldı ve 4'ncü sürümünün betası ortaya kondu.&lt;br /&gt;Peki ama PHP nedir?&lt;br /&gt;PHP ile artık oturup her türlü işlevselliği sahip programlar yazabilirsiniz; yani PHP başlı başına uygulama alanları bulabilecek düzeye ulaşmıştır. Başka bir deyişle PHP ile oyun programından tutun veritabanı yönetimine kadar hemen her türlü programı yazabilirsiniz. Bizi bu kitapçıkta ilgilendiren tarafıyla PHP, Web Sunucu'ya bir takım işler yaptırmak için program yazma dilidir. Tıpkı CGI/Perl veya ASP ya da ColdFusion, Java (Javascript değil!) gibi! PHP kodları, oluşturacağımız HTML sayfalarında HTML etiketlerinin arasında kendi özel ayracı içinde yazılır:&lt;br /&gt;	&lt;html&gt;&lt;br /&gt;	&lt;?PHP &lt;br /&gt;		echo ("Merhaba Dünya!");&lt;br /&gt;	?&gt;&lt;br /&gt;	&lt;/html&gt;&lt;br /&gt;İster kişisel bilgisayarımızda, ister gerçek Internet ortamında olsun, bir Web Sunucu, ziyaretçinin (Internet istemci programının, Browser'ın) talep ettiği dosya adının uzatması olarak ".PHP,"  ".PHP2," ".PHP3," veya ".PHP4" görünce, kendine kendine, "Yine bana iş çıktı!" diye düşünür! Çünkü Web Server, uzatması ".htm" veya ".html" olan bir dosyayı, kendi sabit disklerinden birinde bulur ve zahmetsizce, ziyaretçinin bilgisayarına gönderir. Fakat, ".asp," .pl," ".cfm" gibi, ".PHP" uzatması, Web Sunucu'ya bu sayfayı olduğu gibi, alıp ziyaretçinin Browser'ına göndermek yerine, önce PHP yorumlayıcıyı çağırarak, ona teslim etmesi gerektiğini bildirir. PHP yorumlayıcısı (yani Windows ortamında PHP.exe veya 4'ncü sürümle gelen PHP4isapi.dll, Unix ve türevlerinde çalıştırılabilir PHP dosyası), kendisine teslim edilen bu belgede önce "&lt;?PHP" ve "?&gt;" ayraçları arasındaki PHP kodlarını seçerek alır ve gereği ne ise onu yapar. Bu ayraçların içinde kalan kodlar, bizim yapılmasını istediğimiz işlemin komutlarıdır. HTML ile yetinmeyip, PHP kullanmamızın sebebi, bu komutların HTML'in yapayacağı şeyleri yapmasıdır.&lt;br /&gt;HTML'in yapamayacağı şeylerin başında, Web Sunucusu'nda yapılacak işler vardır. Sözgelimi HTML etiketlerini kullanarak, Web Sunucusu'ndaki bir veritabanı dosyasını açıp, içindeki verileri okuyamayız. HTML yoluyla Web Sunucusu'nun sabit disklerindeki düz yazı dosyalarını da okuyamayız ve bu disklere dosya yazamayız. HTML etiketleri ile Web ziyaretçimizden bilgi edinebilir ve bunları Sunucu'ya yollayabiliriz; ama o kadar! Bu bilgileri işe yarar şekle sokmak için bize Server'da çalışan bir program gerekir. Server'da çalışan program, EXE ve DLL veya JSP (Java Server Pages)  gibi bir "gerçek program"; veya Perl, ASP ve PHP gibi Script diliyle yazılmış bir program olabilir. (Gerçek programları yazanlar, tabiî, sizin Script diliyle yazılmış programlara "program" demenize çok kızarlar! Ama bu Script pogramlarının program olmasını hiç engellemez.)&lt;br /&gt;Ne diyorduk? Web Sunucu, ".PHP" uzatmasını görünce telaşa kapılır, bu dosyayı PHP yorumlayıcısına verir ve o da "&lt;?PHP" ve "?&gt;" ayraçları içindeki kodları icra eder, demiştik. Bu icraatın sonunda ortaya çıkan ürün eğer ziyaretçiye gönderilecekse, HTML etiketleri içinde gönderilir; yani ziyaretçi asla PHP kodlarını göremez. Kimi zaman PHP programımızın çalışması sonucu ortaya ziyaretçiye gönderilecek bir ürün çıkmaz; elde edilen sonuç ya başka bir programa (örneğin elektronik ileti gönderen bir Sendmail progamına) hammadde olarak verilir, ya da Server'da sabit diske yazılır. Fakat her durumda, Web ziyaretçimiz bizim PHP kodlarımızı göremez; bu Web sayfalarımızda PHP kodu kullanmamız halinde, sayfalarımızın Browser tarafından tanınması veya tanınmaması gibi bir durumun ortaya çıkmaması demektir. Ziyaretçi ne tür Browser kullanırsa kullansın, kendisine Sunucu'dan daima saf HTML kodu geleceği için, sayfalarımızı rahatça görebilecektir. Tabiî bir nokta var: Sayfalarımızda herhangi bir Browser'ın arızalı yorumladığı veya hiç yorumlayamadığı HTML etiketleri bulunabilir; ya da söz gelimi ziyaretçiye giden HTML'in içinde Browser'da çalıştırılacak olan başka Script kodları bulunabilir; ve Browser bu kodları anlamayabilir. Örneğin, HTML sayfanızda VBScript kodları kullanmış iseniz, Netscape ile sitenize bağlanmış olan kişiler bu kodun oluşturmasını istediğiniz etkiyi göremeyeceklerdir; çünkü Netscape VBScript anlamaz! PHP ile yazacağınız Web programlarının (eski deyimiyle "sayfaların") oluşturacağı HTML belgesinin Browser türleri ve sürümleri ile uyarlılığını sağlamak yine Web programcısı olarak sizin sorumluluğunuzdadır.&lt;br /&gt;Özetlersek, PHP bir CGI programlama dilidir; bu dille, Web Sunucusu ile Web ziyaretçisi arasındaki buluşma noktası olan CGI'da bilgi alışverişi yapılabilir; Sunucu'da bulunan başka programlar çalıştırılabilir ve böylece Web sayfalarımıza HTML'in sınırlamalarının ötesinde hareket ve ziyaretçi ile etkileşme olanağı kazandırılabilir.&lt;br /&gt;Sanırım iyi bir Web programcısı olarak şu anda ekrana "Merhaba Dünya!" yazdırmak için sabırsızlanıyorsunuz. Ama bunun için, PHP sayfanızı ya PHP-uyumlu bir Web Sunucusu'ndaki Web sitenize yüklemek, ya da kişisel bilgisayarınızdaki kişişel Web Sunucusu'na PHP öğretmek zorundasınız. Bu ikinci yöntemi kuvvetle tavsiye ederim; çünkü yazacağınız PHP programlarını gerçek Internet Sunucusunda sınamak, bazen arzu edilmeyen durumlara yol açabilir. Oysa kişinin bu denemeleri, evinde ve işyerinde kendi bilgisayarında yapması, çoğu zaman daha az başağrısı ve gözyaşına yol açar! En azından, PHP hatalarınızı ve gözyaşlarınızı sizden başka gören olmaz!&lt;br /&gt;PHP ve Veritabanı&lt;br /&gt;Kişisel bilgisayarınızdaki kişisel Web sunucusuna PHP öğretme işlemine geçmeden önce, hemen hemen PHP'nin ikiz kardeşi sayılan MySQL'den ve onun rakibi PostgreSQL'den kısaca söz edelim.&lt;br /&gt;PHP'nin varlık sebeplerinin başında, ticarî Unix ve Microsoft Windows işletim sistemlerinden ayrı, ticarî olmayan Açık Sistem ortamlarında çalışan bir Script dili ile bu dille kullanılabilecek yine Açık Sistem ürünü bir veritabanı erişim ve yönetim aracına sahip olmak gelir. Perl, gerçi PHP'den çok önce Açık Sistem ürünü olarak, isteyen Web Programcısı'nın ücretsiz edineceği bir CGI programlama dili olarak Web'in ilk gününden beri Web Programcısının emrinde idi. Ama Perl, metin dosyalarından yazı çekmek ve bunları biçimlendirerek rapor haline getirmek amacıyla geliştirilen bir dil olduğu için, özellikle veritabanına dayalı işlemlerde programcıya çok güçlük çıkartıyordu. ASP ise (ASP desteği sağlayan ve ücretsiz Web sitesi veren firmaların giderek artmasına ve veritabanı konusunda hem kolaylık, hem de büyük bir etkinlik sağlamasına rağmen) çoğunlukla ücretli Web sitesi aldığımız ticarî amaçlı evsahibi (Hosting) firmalarının sağladığı bir teknoloji olarak görüldü. PHP, tasarımcılarının MySQL ve PostgreSQL teknolojilerini geliştiren kurum ve firmalarla yaptığı yakın işbirliği sonucu ikinci sürümünden itibaren veri-yönlendirmeli Web uygulaması alanında önemli bir araç olarak belirdi. Dolayısıyla, PHP kurulumu dendiği zaman, kendiliğinden, MySQL kurulumu da kastedilmiş olur. Şimdi PostgreSQL da ekleyebiliriz.&lt;br /&gt;PHP, bir dildir; MySQL ve PostgreSQL ise bir demet sürücüdür. PHP ile, Web Server'a sayfanızı Internet ziyaretçisine göndermeden önce bir takım komutları icra etmesini, bir takım veri dosyalarını açıp içindeki bilgileri alıp bunları HTML kodlarıyla bezeyip, Browser'a bildiğimiz klasik HTML sayfası olarak göndermesi talimatını veririz. MySQL ve PostgreSQL ise, Windows sistemlerinde Denetim Masası'nda gördüğünüz ODBC Veri Kaynağı Yönetmeni adlı araç gibi, bir vertabanı sunucusu, yani Database Server pprogramlarıdır. Yakın zamana kadar bu iki veritabanı yönetim aracı arasında fazla bir çekişme yoktu. Ancak şimdi özellikle Linux kullanıcıları topluluklarında iki program arasında verimlilik testleri yapılıyor; hangisinin daha iyi olduğnuna ilişkin yoğun bir tartışma sürüyor. PHPBuilder.com uzmanları, yaptıkları bir çok denemede, MySQL'in daha hızlı ve daha etkin çalıştıkları sonucuna varıyorlar. (Bu konuda daha geniş bilgi edinmek için Internet'te www://PHPbuilder.com/columns/tim20000705.PHP3 adresine bakabilirsiniz.) &lt;br /&gt;MySQL, bir kullanıcı lisansı 200 Dolar olan ticarî bir program iken 2000 yılı ortalarında GPL (GNU General Public License/GNU Kamusal  Lisans) uygulamasına geçmiş ve ücretsiz dağtılır hale gelmiş bulunuyor. Buna göre MySQL'i bir ticarî uygulamanın içinde motor olarak kullanacaksanız üreteci firmaya lisans ücreti ödemeniz gerekir; bunun dışındaki uygulamalar için programı Internet'ten indirerek kullanabilirsiniz. PHP için MySQL'e gerek yoktur. PHP, bir NT veya Win9x tabanlı Web Server'da çalıştırılıyorsa, Microsoft'un ODBC sürücüleri ile çalışabilir; ve ODBC'nin okuduğu bütün veritabanlarından veri çekebilir. (ODBC'nin Unix-Linux sürümü de vardır.)  Ayrıca PHP için Adabas, dBase, Empress, FilePro, Informix, InterBase, mSQL, Oracle, Solid, Sybase, Velocis ve bir çok Unix veritabanı yöneticisi için geliştirilmiş add-on (sonradan eklenen) modüller vardır. PHP, bir çok LDAP istemci programı için yazılmış API'lere de sahiptir. PHP ile IMAP, SMTP gibi Internet elektronik mektup protokollerini kullanmak da mümkündür.&lt;br /&gt;Biz bu kitapçıkta örneklerimizde ve uygulamalarımızıda MySQ'den yararlanacağız. PHP-MySQL ikilisini kişisel bilgisayarımıza kurmak için önce gerekli programları Internet'ten indirmemiz gerekir. Bunun için şu adreslerden yararlanabilirsiniz:&lt;br /&gt;http://www.PHP.net/downloads.PHP&lt;br /&gt;http://www.mysql.com/downloads/index.html&lt;br /&gt;PHP ve Web Sunucusu&lt;br /&gt;Bizim açımızdan PHP, bir Web sunucu programıdır; kurulacağı sistemdeki Web sunucusu ile uyumlu olması gerekir. 4'ncü sürümü itibariyle, PHP bütün Unix-türevi sistemler (örneğin Linux) ve Microsoft Windows sistemleri ile uyumludur. Birlikte çalışabileceği Web sunucu programları arasında Apache, IIS, FHTTP, Omni HTTPd, Xitami ve Windows 95/98 için PWS (Personal Web Server) vardır. Gerçek Internet ortamında sunucu programlara PHP yeteneği kazandırma işlemi, Web Pnogramcısı olarak bizi ilgilendirmez; bizim için Internet sitemize evsahipliği yapan Hosting firmasının PHP desteği verip vermediğini bilmek yeter. Fakat tasarımlarımızı sınayabilmek için kendi bilgisayarımıza bir kişisel Web Server kurmak ve bu programı PHP-uyumlu hale getirmek gerekir. Burada sadece iki örnek ele alacağız: Linux için Apache sunucu programı ve MS-Windows için PWS. Bu iki programdan hangisi sizin sisteminize uygunsa onu kendi bilgisayarınıza kuracağınızı varsayarak, şimdi PHP ve MySQL kurulumu ile uğraşabiliriz.&lt;br /&gt;Unix/Linux Sistemleri&lt;br /&gt;Kurma işlemine Unix ortamından başlayalım. Burada Unix sistemi dediğimiz zaman Unix'in tekrar bilişim haritasında yerini almasını sağlayan Linux'u kastediyorum. Bunun için önce http://www.PHP.net/ adresini ziyaret etmemiz gerekiyor. Eğer PHP uzmanı olacaksanız, burası sizin ikinci eviniz olabilir. Downloads köprüsünü tıklayarak açılacak sayfada Unix/Linux için kaynak kodunu bilgisayarınıza aktarın. PHP'yi kuracağınız bilgisayarda bir Web sunucu programı yoksa, http://www.apache.org/dist/ adresinden apache_1.3.12.tar.gz (veya daha ileri) dosyasını da indirmeniz gerekir. Unix-Linux sistemleri için bilgisayarınızda "gcc C derleyici" bulunması gerekir. Linux sisteminizde örneğin Red Hat Linux sürüm 5.2 gibi eski bir gcc derleyici varsa, gcc sürüm 2.8.1'i Internet'ten bulmanız gerekir.&lt;br /&gt;//////KUTU///////////////////&lt;br /&gt;Linux'ta program derlediniz mi?&lt;br /&gt;Daha önce hiç Linux programı derlemediyseniz, önce bazı kavramları açıklığa kavuşturalım:&lt;br /&gt;tar: (tape archiver) birden fazla dosyayı tek dosya haline getirir ve sıkıştırır. Teyplere yedekleme amacıyla geliştirilmiştir. tar dosyaları sıkıştırılmışsa uzatması .gz, değilse .tar olur.&lt;br /&gt;gcc: GNU'nun C derleyicisidir. İnsan tarafından okunabilen kaynak kodlarını makina tarafından okunabilen nesne (object) dosyalarına dönüştürür. C programlama diliyle yazılmış kaynak kodları içeren dosyaların uzantını .c olur. Nesne dosyalarının adının uzantısı genellikle .o olur. Derleyici başlık (header, uzantısı .h olan) dosyalarını bulamazsa derleme hatası verir. &lt;br /&gt;make: henüz derlenmemiş kaynak dosyalarını derleyen yardımcı bir programdır. make, derleme talimatlarını Makefile adlı bir dosyadan alır. &lt;br /&gt;ld: GNU'nun bağlayıcı (linker) programıdır. Nesne dosyalarını ve kitaplık denen dosyaları birbirine bağlayarak ortaya çalıştırılabilir bir program dosyası çıkartır. Genellikle Makefile'ın içinde linker'ın çalıştırılması talimatı bulunur ve sizin bu programı kullanmanız gerekmez.&lt;br /&gt;ldconfig : paylaşılan kitaplık dosyalarını (shared librari) arar. Bu dosyalardan birden fazla program tarafından paylaşılır, ve dosya adlarında .so bulunur. &lt;br /&gt;./configure : C derleyecisi ve header dosyalarının nerede olduğunu araştırır, ve vardığı sonuca göre Makefiles dosyasında değişiklik yapar. &lt;br /&gt;/////////////////KUTU BİTTİ///////////////&lt;br /&gt;PHP, bir Unix/Linux sisteminde müstakil yorumlayıcı veya Apache Web sunucusunun bir modülü olarak çalışmak üzere derlenebilir. PHP, müstakil yorumlayıcı olarak kurulduğunda, Web sunucusu, her ihtiyaç halinde PHP yorumlayıcısının bir örneğini çalıştırır. Bu, bir süre sonra Web sunucusunun bulunduğu işletim sisteminin yükünün artmasına ve işleyişinde yavaşlamaya yol açabilir. Oysa PHP, sunucunun bir modülü olarak kurulduğunda, bu sakınca ortaya çıkmaz. (Bu özelliği ile PHP, klasik CGI/Perl'ün çalışma tarzından ayrılır, ASP'nin ve ColdFusion'ın çalışma tarzına yaklaşır.) Bununla birlikte kötü niyetle veya beceriksizce yazılmış PHP programları modül olarak kurulmuş PHP'yi çökertirlerse, Web sunucusunu da çökertmiş olurlar; oysa müstakil PHP yorumlayıcı çökerse, Web sunucusuna bir şey olmaz.&lt;br /&gt;Burada yapacağımız kurulum işlemi sırasında Linux kurulu olan bilgisayarımıza Apache Web sunucu programını, bu sunucunun kullanacağı güvenli Socket katmanını sağlayacak Mod_SSL programını, bu programın gerektirdiği OpenSSL aracını, MySQL veritabanı sunucusunu ve PHP Scripting dilini kurmuş olacağız.&lt;br /&gt;PHP'yi Linux ortamında Apache Web sunucusuna modül olarak kurmak için sırasıyla şu işlemleri yapmamız gerekir (Sisteminizde gzip veya gunzip ile gcc and GNU make kurulu olduğunu varsayıyorum):&lt;br /&gt;1. Sisteminizi root olarak başlatın ve sıkıştırılmış olarak alacağınız PHP ve Apache dosyalarını geniş yer olan geçici bir dizinde açın, ve o dizine gidin. Sözgelimi, Apache'nin tar-zip olarak sıkıştırılmış kaynak dosyalarının tmp adlı dizinde olduğunu varsayalım:&lt;br /&gt;# cd /tmp&lt;br /&gt;# gunzip –c apache_1.3.12.tar.gz  | tar xf –&lt;br /&gt;Burada, indirdiğiniz Apache sürümü farklı ise onun adını yazacaksınız. Şimdi Apache'yi açtığınız klasöre gidin ve buradaki configure dosyasını çalıştırın:&lt;br /&gt;# cd apache_1.3.12&lt;br /&gt;# ./configure --prefix=/usr/local/apache&lt;br /&gt;Buradaki örnekte Apache'yi /usr/local/apache dizinine koyduğumuza dikkat edin. Bu dizini, bir çok kurulumun varsayım olarak arayacağı dizin olduğu için tercih ediyoruz. Ama isterseniz siz Apache'yi başka dizine de kurabilirsiniz.&lt;br /&gt;2. Sıra MySQL veritabanı sunucusunda. Linux'ta root oturumunda iken sıkıştırılmış dosyaları indirdiğiniz geçici dizine  geçin ve dosyaları açın; sonra oluşturulan dizine giderek, configure komutu ile veritabanı sürücüsünü yapılandırın:&lt;br /&gt;# cd /tmp&lt;br /&gt;# gunzip -dc mysql-3.22.32.tar.gz | tar xvf -&lt;br /&gt;# cd mysql-3.22.32&lt;br /&gt;# configure --prefix=/usr/local/mysql&lt;br /&gt;Şimdi make komutu ile binary dosyalarını oluşturarak, ve sisteme yükleyelim:&lt;br /&gt;# make&lt;br /&gt;# make install&lt;br /&gt;MySQL'in kullanım izinlerini belirlememiz gerekir. Aşağıdaki komutları yazarken "parola" kelimesi yerine vermek istediğiniz parola kelimesini yazmanız gerekir:&lt;br /&gt;# scripts/mysql_install_db&lt;br /&gt;# cd /usr/local/mysql/bin&lt;br /&gt;# ./safe_mysqld &amp;&lt;br /&gt;# ./mysqladmin -u root password 'parola'&lt;br /&gt;Kurulum işleminin başarılı olup olmadığını sınamak için, kurulum sırasında oluşturlan örnek veritabanı dosyalarını bulunup bulunmadığını soruşturabilir ve kendimiz yeni bir veritabanı oluşturabiliriz. Bunun için şu komutu yazalım:&lt;br /&gt;# BINDIR/mysqlshow -p&lt;br /&gt;# mysql -u root -p&lt;br /&gt;Sistem "Enter password:" karşılığını verdiğinde, yukarıda kullanım izinlerini belirlerken yazdığınız parolayı yazın; MySQL sunucusu çalışacak ve size kullanıcı izinlerinin bulunduğu "mysql" ve sınama amacıyla oluşturulan  "test" adlı iki veritabanının bulunduğunu bildirecektir. Şimdi kendi veritabanımızı oluşturalım. MySQL sunucu komut istemcisi satırına şunu yazın (Bilgisayarın vereceği karşılıklardan ayırt etmek için kendi yazdıklarımızı koyu renkle gösteriyoruz):&lt;br /&gt;mysql&gt; create database deneme; &lt;br /&gt;Sunucu "Query OK, 1 row affected (0.00 sec)" şeklinde karşılık verecektir.  Şimdi bu veritabanını seçerek içinde deneme adlı ve içinde "no" ve "isim" adlı iki alan bulunan bir tablo oluşturalım (MySQL komutları büyük harf-küçük harf ayrımı yapmaz; komutlardan sonra noktalı virgül konur). Burada koyu renkle gösterilen satırlar ve işaretler bize aittir:&lt;br /&gt;mysql&gt; use deneme;&lt;br /&gt;Database changed&lt;br /&gt;mysql&gt; CREATE TABLE books (&lt;br /&gt;-&gt; no int(3) not null auto_increment,&lt;br /&gt;-&gt; isim char(50) not null,&lt;br /&gt;-&gt; unique(no),&lt;br /&gt;-&gt; primary key(no)&lt;br /&gt;-&gt; );&lt;br /&gt;Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;Bakalım tablomuz başarılı şekilde oluşmuş mu?&lt;br /&gt;mysql&gt; show tables; &lt;br /&gt;mysql&gt; describe deneme;&lt;br /&gt;Field Type Null Key Default Extra &lt;br /&gt;no int(3) PRI 0 auto_increment &lt;br /&gt;isim char(50) &lt;br /&gt;2 rows in set (0.00 sec) &lt;br /&gt;Çok güzel! Hem MySQL'i kurmuş, hem de ilk tablomuzu oluşturmuş bulunuyoruz. MySQL komutlarını daha ayrıntılı öğrenebilmek için MySQL'in http://www.mysql.com adresindeki sitesini ziyaret edebilirsiniz. Şimdilik MySQL'den çıkalım ve kuruluma devam edelim.&lt;br /&gt;3. Sıra geldi PHP'ye!  PHP kaynak dosyasının bulunduğu geçici dizine geçin, ve dosyaları açın; sonra açılan dosyaların bulunduğu dizine gidin:&lt;br /&gt;# gunzip -c PHP-4.0.1pl2.tar.gz | tar xf -&lt;br /&gt;# cd PHP-4.0.1pl2 &lt;br /&gt;Şimdi configure dosyasını çalıştıracağız; bu komutun bir çok opsiyonu vardır; bunların tümünü görmek istiyorsanız, "configure --help" komutunu verebilirsiniz. Biz sadece PHP'ye MySQL ve Apache opsiyonlarını eklemekle yetineceğiz:&lt;br /&gt;# ./configure --with-mysql=/usr/local/mysql \&lt;br /&gt;--with-xml \&lt;br /&gt;--with-apache=../apache_1.3.12 \&lt;br /&gt;--enable-track-vars&lt;br /&gt;Oluşan binary dosyalarını program dosyasına çevirerek, yükleyelim:&lt;br /&gt;# make&lt;br /&gt;# make install &lt;br /&gt;Oluşan ini dosyasını lib dizinine koplayalım:&lt;br /&gt;# cp PHP.ini-dist /usr/local/lib/PHP.ini &lt;br /&gt;PHP.ini dosyasındaki bir çok özelliği değiştirerek, PHP'nin çalışma tarzını ayarlayabilirsiniz; örneğin şu satırı ekleyerek, PHP'nin azamî çalışma süresini arttırabilirsiniz: &lt;br /&gt;max_execution_time = 60; &lt;br /&gt;///////////////KUTU/////////////////////&lt;br /&gt;Güvenli socket ve Internet Erişimi Katmanı&lt;br /&gt;Kuracağınız Web sunucusu gerçek Internet'e açılacaksa, sisteminize Mod_SSL yeteneğini kazandırmanız gerekir. Bu sistemin rsaref-2.0 adında bir eki vardır; ancak Amerika dışında kurulan Web Sunucularda rsaref-2.0 ekinin kurulması gerekmez. Apache sunucusunu sadece PHP dosyalarınızı sınamak amacıyla kendi bilgisayarınıza kuruyorsanız, Mod_SSL kurmak şart değildir.&lt;br /&gt;Bu işlemi yapmak zorunda iseniz, önce http://www.openssl.org/ adresinden openssl-0.9.1c.tar.gz adlı dosyayı, http://www.modssl.org/ adresinden de mod_ssl-2.6.5-1.3.12.tar.gz dosyasını indirin. Sonra sırasıyla şu işlemleri yapabilirsiniz:&lt;br /&gt;# gunzip -dc openssl-0.9.5c.tar.gz | tar xvf -&lt;br /&gt;# cd openssl-0.9.x&lt;br /&gt;#./config --prefix=/usr/local/ssl \&lt;br /&gt;-L`pwd`/../rsaref-2.0/local/rsaref -fPIC &lt;br /&gt;# make&lt;br /&gt;# make test&lt;br /&gt;# make install&lt;br /&gt;# cd ..&lt;br /&gt;Şimdi Mod_SSL modülünü Apache ile kullanılacak şekilde kuralım:&lt;br /&gt;# gunzip -dc mod_ssl-2.6.4-1.3.12.tar.gz |tar xvf -&lt;br /&gt;# cd &lt;br /&gt;# ./configure --with-apache=../apache_1.3.12&lt;br /&gt;# cd ..&lt;br /&gt;# cd apache_1.3.12&lt;br /&gt;# SSL_BASE=../openssl-0.9.x \&lt;br /&gt;RSA_BASE=../rsaref-2.0/local \&lt;br /&gt;./configure \&lt;br /&gt;--enable-module=ssl \&lt;br /&gt;--activate-module=src/modules/PHP4/libPHP4.a \&lt;br /&gt;--enable-module=PHP4 \&lt;br /&gt;--prefix=/usr/local/apache \&lt;br /&gt;--enable-shared=ssl&lt;br /&gt;[...ISS'ler buraya arzu ettikleri diğer opsiyonları ekleyebilirler..]&lt;br /&gt;# make &lt;br /&gt;Bu noktada sistem binary dosyaların oluşturulduğunu ve kurulumun gerekli güvenlik sertifikalarını istediğini bildirecektir. Sertifika oluşturma konusunda fazla bilgi için, http://www.modssl.org/docs/2.6/ssl_faq.html#ToC25 adresine bakabilirsiniz.) Diyelim ki sadece ISS'in yeri, firma adı ve bir iki diğer bilgiden oluşan özel bir sertifika oluşturmakla yetineceksiniz. Bunun için şu komutu girin ve sistemin soracağı sorulara cevap verin:&lt;br /&gt;# make certificate TYPE=custom &lt;br /&gt;Şimdi Apache'yi yeniden kurabiliriz:&lt;br /&gt;# make install &lt;br /&gt;Herşey yolunda gittiyse, sistem "You now have successfully built and installed the Apache 1.3 HTTP server," şeklinde başlayan uzun bir mesaj verecektir. Bu durumda Apache sunucusu şu komutla başlatılabilir:&lt;br /&gt;/usr/local/apache/bin/apachectl start &lt;br /&gt;Apache'yi güvenli iletişim katmanı desteği ile başlatmak istiyorsanız şu komutu yazın:&lt;br /&gt;/usr/local/apache/bin/apachectl startssl &lt;br /&gt;//////////////////////KUTU BITTI/////////////////&lt;br /&gt;Bu işlemleri başarıyla bitirmiş olsak bile sistemin çalıştığını kontrol etmemiz gerekir. Önce Apache'nin çalıştığından emin olalım. Bunun için önce Apache'nin yapılandırılmasına PHP'nun eklendiğinden emin olmamız gerekir. Kurulumu buradaki gibi yaptı iseniz /usr/local/apache/conf dizininde bulunan  httpd.conf dosyasını açın; ve "addtype for PHP4" satırların önündeki yorum (#) işaretlerini kaldırın; yani bu satır yorum olmaktan çıkıp yapılandırma komutu olsun:&lt;br /&gt;    #AddType application/x-httpd-PHP .PHP&lt;br /&gt;    #AddType application/x-httpd-PHP-source .PHPs&lt;br /&gt;şeklindeki satırları şu şekle getirin:&lt;br /&gt;    AddType application/x-httpd-PHP .PHP&lt;br /&gt;    AddType application/x-httpd-PHP-source .PHPs&lt;br /&gt;Şimdi Apache sunucusunu çalıştırabilir ve PHP desteğinin bulunup bulunmadığını sınayabilirsiniz:&lt;br /&gt;# cd /usr/local/apache/bin&lt;br /&gt;# ./apachectl configtest&lt;br /&gt;Syntax OK&lt;br /&gt;# ./apachectl start&lt;br /&gt;./apachectl start: httpd started&lt;br /&gt;"httpd started" ifadesi bize Apache'nin çalıştığını gösteriyor. Şimdi Browser'ınızı açın ve HTTP sunucusu olarak Apache'nin adresini yazın. Bu, bilgisayarınızın Domain adıdır; Apache'nin kurulu olduğu bilgisayarın IP numarasını da yazabilirsiniz.&lt;br /&gt;Şimdi, bir düzyazı dosyasına şunları yazın:&lt;br /&gt;&lt;? PHPinfo(); ?&gt; &lt;br /&gt;Dosyayı PHP.PHP adıyla Apache'nin Web sunucu için kök dizin saydığı klasöre kaydedin. Browser'ınızın URL adresi alanına sunucu adıyla birlikte dosyanın adını yazın.&lt;br /&gt;&lt;php00001.tif&gt;&lt;br /&gt;Aldığınız sonuç, PHP'nin sistem ve sunucu hakkında ayrıntılı raporu ise, kendi kendinizi kutlayabilirsiniz: hem Apache sunucu, hem de PHP çalışıyor!&lt;br /&gt;Windows-PWS ve IIS&lt;br /&gt;PHP'yi Windows 95/98/NT/2000 işletim sistemlerinden biri ile çalışan bilgisayara kurmak için önce http://www.PHP.org adresinden PHP-4.0.1pl2-Win32.zip veya daha ileri sürümdeki zip dosyasını almamız gerekir. Bu dosyayı açın ve içindekileri sözgelimi c:\PHP dizinine kopyalayın. (Dizini oluştururken "PHP," "PHP" veya "PHP" yazdığınıza dikkat edin!)&lt;br /&gt;Daha önce Wihdows sistemine PHP 3.x kurmuş olanlar PHP 4.0'ün kurulumumu biraz farklı bulacaklardır. Bu, daha önce PHP kişisel ve Internet amaçlı Web sunucuda (PWS veya IIS) müstakil bir CGI programı olarak çalışırken şimdi buna ek olarak (tıpkı ASP gibi) DLL yoluyla, bir ISAPI modülü  olarak çalışmasının sağlanmış olmasından kaynaklanıyor. &lt;br /&gt;PHP'yi Windows 95 veya NT4.0 sisteminde kurulu bir PWS veya IIS için kuracaksınız, önce bazı önlemler almanız gerekiyor. NT 4.0 sistemlerinde IIS 4.0'ün bulunduğu Option Pack'in kurulması şart. Windows 95 sistemlerinde ise önce DCOM bileşenlerinin günceleştirilmesi gerekiyor. Bu dosyayı, http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe adresinden alabilirsiniz.&lt;br /&gt;PHP'yi müstakil çalışan CGI programı olarak kullanmayı düşünseniz bile daha önceki sürümlerinden farklı olarak bazı DLL dosyalarının Windows dizininde sistem alt-dizinine kopyalanması gerekir. Açtığınız Zip dosyasından çıkan ve C:\PHP dizinine kopyaladığınız dosyalar arasında bulunan MSVCRT.DLL ve PHP4TS.DLL adlı dosyaları Windows 9x sistemlerinde WINDOWS dizininde SYSTEM, NT/2000'de ise WINNT dzininde SYSTEM32 dizinine kopya edin. (Windows, MSVCRT.DLL dosyasının kullanılmakta olduğu bildirerek, kopyalamayı reddederse, kopyalamaya gerek yok demektir.)&lt;br /&gt;IIS 4.0 VE 5.0&lt;br /&gt;Windows NT/2000'e kurulu olan IIS 4.0 veya 5.0'e PHP desteği kazandırmak için, önce yukarıdaki gibi DLL dosyalarını gerekli yere kopyalayın. Açtığınız Zip dosyasından çıkmış olan PHP.ini-dist isimli düz yazı dosyasını Notepad ile açın ve "extension_dir=" satırını bularak, karşısındaki "./" yazısını silip yerine PHP dosyalarını kopyaladığınız dizinin adını (örneğin C:\PHP) yazın. PHP dizinin adını doğru yazdığınızı kontrol etmekte daima yarar vardır! Sonra ";browscap =" satırını bulun ve önündeki noktalı virgülü kaldırarak karşısındaki "extra/browscap.ini" kelimelerini c:\Winnt\browscap.ini olarak değiştirin. Bu dosyayı, PHP.ini adıyla Winnt dizinine kaydedin. (Windows dizininin Winnt adını taşıdığını varsayıyorum. Sizin Windows dizininiz başka ise, gerekli düzeltmeyi yapmanız gerekir.)&lt;br /&gt;////////////////KUTU///////////////&lt;br /&gt;Browser Yetenek Dosyası: Browscap.ini&lt;br /&gt;Windows sistemine kurulu bir Web Sunucu programına (PWS, IIS veya Apache Win32) PHP yeteneği kazandırabilmek için PHP'nin talep sahibi Browser'ın yeteneklerini bir dosyadan okuması gerekir. Bu dosyanın adı browscap.ini dir. &lt;br /&gt;Internet'te http://asptracker.com/browscap.zip dosyasını alarak açın ve çıkacak "browscap.txt" dosyasının adını "browscap.ini" olarak değiştirerek Windows/Winnt klasörüne kopyalayın.&lt;br /&gt;//////////////////KUTU BİTTİ/////////////&lt;br /&gt;Internet Services Manager'ı açın; bu araç, NT 4.0'te Start menüsünde Programs/Option Pack'te, 2000'de ise Control Panel/Administrative Tools'dadır. Açılacak pencerede muhtemelen Default Web Server adını taşıyan Web sunucusunun adını sağ tıklayın:&lt;br /&gt;&lt;php00002.tif&gt;&lt;br /&gt;Açılan listede Properties maddesini; açılan kutuda Home Directory sekmesini seçin; Configuration düğmesini tıklayın ve  yeni bir Application Mappings satırı eklemek üzere, Executable kutusuna PHP4isapi.dll dosyasının tam yolunu ve adını (örneğin C:\PHP\ PHP4isapi.dll); Extension kutusuna ise .PHP yazın (IIS 4.0'te Method exclusions kutusunu boş bırakın) ve  Script engine kutusuna işaret koyun. &lt;br /&gt;&lt;php00003.tif&gt;&lt;br /&gt;ISAPI Filters sekmesini seçin. Add düğmesini tıklayarak yeni bir ISAPI filtresi kaydı yapın. Açılacak kutuda filtre adı olarak PHP, yol olarak da PHP4isapi.dll dosyasının bulunduğu dizinin yolunu  (örneğin C:\PHP\ PHP4isapi.dll) yazın. &lt;br /&gt;&lt;php00004.tif&gt;&lt;br /&gt;IIS'i tamamen durdurun; ama bunun için sadece Internet Services Manager'daki Stop düğmesini tıklamak yetmez; komut istemci (MSDOS Prompt) penceresinde net stop iisadmin yazın. Windows, bu servisin bağlı olduğu diğer bazı hizmetlerin de durdurulacağını bildirince "Y" yazın ve Enter'a basın. Şimdi IIS'i tekrar başlatmak için aynı pencerede net start w3svc yazın. Artık IIS'iniz PHP anlar hale gelmiş olmalı. Bunu, hemen sınayalım. Notepad veya bir başka düzyazı programıyla şunları yazın:&lt;br /&gt;&lt;? PHPinfo(); ?&gt; &lt;br /&gt;Dosyayı PHP.PHP adıyla IIS'in kök dizin saydığı klasöre kaydedin. Browser'ınızın URL adresi alanına sunucu adıyla birlikte dosyanın adını yazın.&lt;br /&gt;&lt;php00005.tif&gt;&lt;br /&gt;Bravo! İşte yeni bir dil öğrenmiş Web sunucuya sahip oldunuz. &lt;br /&gt;PWS 4.0&lt;br /&gt;Windows'un 95/98/SE/Me türlerine kişisel Web sunucu programı olarak Personal Web Server (PWS 4.0) kurulmalıdır. PHP Zip dosyasından çıkacak DLL'leri Windows dizininde System klasörüne kopyaladıktan sonra, Zip dosyasından çıkmış olan PHP.ini-dist isimli düzyazı dosyasını Notepad ile açın ve "extension_dir=" satırını bularak, karşısındaki "./" yazısını silip yerine PHP dosyalarını kopyaladığınız dizinin adını (örneğin C:\PHP) yazın. PHP dizinin adını doğru yazdığınızı kontrol edin! Sonra ";browscap =" satırını bulun ve önündeki noktalı virgülü kaldırarak karşısındaki "extra/browscap.ini" kelimelerini c:\Windows\browscap.ini olarak değiştirin. Bu dosyayı, PHP.ini adıyla Windows dizinine kaydedin. Daha önceki sayfalarda göreceğiniz şekilde Browscap.ini dosyasının dosyasını Windows dizinine kopyalamış olmanız gerekir. (Windows dizininin Windows adını taşıdığını varsayıyorum. Sizin Windows dizininiz başka ise, gerekli düzeltmeyi yapabilirsiniz.)&lt;br /&gt;Şimdi, açtığınız PHP Zip dosyasının içinden çıkan PWS-PHP4.reg adlı dosyayı bir düzyazı programıyla, örneğin Notepad ile açın. ".PHP"="[PUT PATH HERE]\\PHP4isapi.dll" yazılı satırı PHP dosyalarını koyduğunuz dizine göre, örneğin şöyle değiştirin:&lt;br /&gt;".PHP" = "C:\\PHP\\PHP4isapi.dll"&lt;br /&gt;Burada çok dikkat etmeniz gereken nokta, ters-bölü işaretlerinin başka yerlerde normal olarak yazdığımız gibi bir adet değil, iki adet olmasıdır. Dosyayı kaydettikten sonra, iki kere tıklayın ve Windows'un Registry'de değişiklik yapmayı isteyip, istemediğinize ilişkin sorusuna Evet yanıtını verin. Tamaam! Sizin de PHP bilen bir PWS'iniz oldu. Ama bunu bir sınayalım. Ve bunu bir Merhaba Dünya programı ile yapalım ki, gelenek bozulmasın!&lt;br /&gt;Düzyazı programınızla şu metni merhaba.PHP adıyla PWS'in Web için kök dizin saydığı (muhtemelen C:\Inetpub\wwwroot) klasöre kaydedin:&lt;br /&gt;	&lt;html&gt;&lt;br /&gt;	&lt;?PHP &lt;br /&gt;		echo ("Merhaba Dünya!");&lt;br /&gt;	?&gt;&lt;br /&gt;	&lt;/html&gt;&lt;br /&gt;Sonra Personal Web Manager kutusunda, Ana başlıklı bölümde, Yayımlama kısmındaki "http://" diye başlayan ve kişisel Web sunucunuzun adı ile devam eden köprüyü tıklayın. Varsayılan Browser'ınız, kişisel Web sunucunuzun ana sayfasını açacaktır. Browser'ın URL adres bölümüne, merhaba.PHP yazın ve klavyede Enter tuşuna basın. Eğer gerçekten PWS'iniz, PHP öğrenmişse, size ve dünyaya merhaba diyecektir.&lt;br /&gt;&lt;php00006.tif&gt;&lt;br /&gt;///////////////////////KUTU///////////&lt;br /&gt;Windows'da Apache!&lt;br /&gt;NT sisteminizde ISS değil de Apache for Win 32 Web Server programını çalıştırıyorsanız, sürümüne göre httpd.conf veya srm.conf dosyasına şu ekleri yapmanız gerekir:&lt;br /&gt;ScriptAlias /PHP3/"c:/path-to-PHP-dir/"&lt;br /&gt;AddType application/x-httpd-PHP3 .PHP3&lt;br /&gt;Action application/x-httpd-PHP3"/PHP3/PHP.exe"&lt;br /&gt;////////////////////////KUTU BİTTİ//////////&lt;br /&gt;Windows'da MySQL&lt;br /&gt;PHP, Windows ortamında, Windows'un ODBC sürücülerini kullanarak, sürücüsü bulunan bütün veritabanlarına ulaşabilir. Ancak Windows ortamında geliştirseniz bile, Web sitenizi, Unix tabanlı ve ODBC-uyumlu olmayan bir sunucuya gönderebilirsiniz. Bu durumda sayfalarınızda kullanacağınız verileri muhtemelen MySQL aracılığıyla veritabanından çekeceksiniz demektir. Bu yüzden Windows sisteminize MySQL kurmak ve veritabanlarını bu araçla geliştirmeniz yerinde olur. Unix/Linux ortamında ücretsiz olmakla birlikte MySQL, Windows için bedeli paylaşımlı (shareware) olarak edinilebilir. Benioku dosyasında belirtildiğine göre, programı eğitim amacıyla ve 30 günü aşmamak kaydıyla kullanıyorsanız, ücret ödenmesi gerekmiyor. Diğer durumlarda TCX firmasının Internet'te http://www.tcx.se adresindeki sitesindeki formları doldurarak lisans alınması gerekiyor. Bu programı, MySQL'in http://www.mysql.com/downloads/ adresinden edinebilirsiniz. Bu adresteki mysql-shareware-3.22.34-win.zip dosyasını alarak, bir geçici dizinde açın. (Sisteminiz gerçek Internet sunucusu olarak ticarî amaçlı hizmet sağlayacaksa şu dosyayı almanız gerekir: http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.21-win-src.zip) Shareware sürümünü içeren dosyayı açtığınızda ortaya çıkacak setup.exe programı MySQL'i kuracaktır. &lt;br /&gt;MySQL Server'ın Windows'da da tıpkı Linux'ta olduğu gibi çalıştırılması ve durdurulması gerekir. MySQL'in paylaşım sürümünü kullanmak için Windows sistemlerinde mysqld-shareware.exe programını çalıştırmanız gerekir. DOS komut istemcisini açın ve "C:/mysql/bin" dizinine giderek, sırasıyla şu komutları verin:&lt;br /&gt;mysqld-shareware&lt;br /&gt;mysqlshow&lt;br /&gt;mysqlshow -u root mysql &lt;br /&gt;mysqladmin version status proc&lt;br /&gt;Şimdi MySQL server çalışıyor ve biraz sonra PHP yoluyla kişisel Web Server'ınıza hizmet vermeye hazır demektir. Bu komutları icra ettiğiniz sırada bir hata mesajı ile karaşılaşırsanız, MySQL'in kuruluşunda hata yapmış olabilirsiniz. DOS ekrarında test ve MySQLl veri tabanlarının varlığını ve hizmete girdiğini gösteren mesajlar görürseniz, MySQL güzelce çalışıyor demektir. Bunu bir de Browser ile ve PHP yoluyla sınayalım:&lt;br /&gt;Yukarıda IIS'e PHP desteği kazandırma çalışmaları sırasında oluşturmadı iseniz, düz yazı programınızda şu tek satırı yazın; php.php adıyla, kişisel Web'inizin kök dizinine kaydedin:&lt;br /&gt;&lt;? PHPinfo(); ?&gt;&lt;br /&gt;Browser'ınızı açın; URL hanesine örneğin http://localhost/PHP.PHP3 yazın. Açılacak sayfada iki şeye dikkat edin: MySQL ve ODBC bölümleri var mı? MySQL bölümü varsa; kendinizi yeniden kutlayın! ODBC bölümü yoksa, muhtemelen sisteminizde Microsoft'un Open Database Connectivity (Açık Veribanı Bağlantısı) sürücüleri kurulu değil demektir. (Windows'da Denetim Masası'nda ODBC simgesini görmüyorsanız, MS'un sitesinden gerekli kur programını indirmeniz gerekebilir. Linux'ta ise MyODBC programı ile bu imkanı kazanabilirsiniz.)&lt;br /&gt;&lt;php00007.tif&gt;&lt;br /&gt;Bir kere daha tekrar etmek gerekirse, PHP ile veritabanına dayanan sayfalar yapmak için mutlaka ve sadece MySQL sürücülerini kullanmak gerekmez. Bunun yerine MS'un ODBC sürücülerini kullanabilirsiniz. Ancak Web sitenize evsahipliği yapan firmanın size ODBC desteği verip vermediğini öğrenmeniz gerekir. Aslında aynı şekilde, evsahibi firmanın MySQL desteği verip vermediğini de öğrenmek zorundasınız. (PHP ile MS-ODBC sürücülerini kullanabilmek için Andrew Stopford'un ASPToday sitesindeki http://www.asptoday.com/articles/20000202.htm yazısında geniş bilgi bulabilirsiniz.)&lt;br /&gt;Geçmiş olsun. Bana sorarsanız, PHP ile dolu yeni bir hayata başlamak için en önemli adımı attınız. Bundan sonrası, sadece PHP dilini öğrenmekten ibaret. Dilin üretecilerinden Zeev Suraski, bu yılın başında İsrail'de yapılan ilk uluslararası PHP Konferansı'nda "PHP öğrenmek zor mu?" diye soran bir bilgisayar meraklısına şu cevabı veriyordu: "Bir haftadan fazla zaman ayırmanız ggerekiyorsa, sizin için zor demektir!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-1384044904266287768?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/1384044904266287768/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=1384044904266287768' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1384044904266287768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/1384044904266287768'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-ye-giri-phpprogramlama.html' title='php ye giriş    phpprogramlama'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1662453703205024806.post-7198184842782409717</id><published>2008-03-08T04:33:00.000-08:00</published><updated>2008-10-13T13:10:24.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php programlama'/><category scheme='http://www.blogger.com/atom/ns#' term='Php içindekiler'/><title type='text'>Php içindekiler</title><content type='html'>PHP&lt;br /&gt;Önsöz 4&lt;br /&gt;PHP Desteği veren sitelerle ilgili not: 6&lt;br /&gt;PHP'ye Giriş 7&lt;br /&gt;PHP ve Veritabanı 10&lt;br /&gt;PHP ve Web Sunucusu 12&lt;br /&gt;Unix/Linux Sistemleri 12&lt;br /&gt;Linux'ta program derlediniz mi? 13&lt;br /&gt;Güvenli socket ve Internet Erişimi Katmanı 17&lt;br /&gt;Windows-PWS ve IIS 20&lt;br /&gt;IIS 4.0 ve 5.0 20&lt;br /&gt;Browser Yetenek Dosyası: Browscap.ini 21&lt;br /&gt;PWS 4.0 22&lt;br /&gt;Windows'da Apache! 23&lt;br /&gt;Windows'da MySQL 24&lt;br /&gt;PHP'nin Yapı Taşları 31&lt;br /&gt;PHP programını durdurmak 31&lt;br /&gt;Değişkenler 31&lt;br /&gt;Veri Türleri 33&lt;br /&gt;Tür Değiştirme 34&lt;br /&gt;Fonksiyon 35&lt;br /&gt;Escape 37&lt;br /&gt;Dört yararlı fonksiyon 42&lt;br /&gt;İşlemciler (Operatörler) 44&lt;br /&gt;Bir Arttırmak veya Azaltmak için 46&lt;br /&gt;Sabit Değerler 49&lt;br /&gt;Tarih ve saat Verisi 51&lt;br /&gt;PHP'de Program Denetimi 53&lt;br /&gt;if Deyimi 53&lt;br /&gt;switch deyimi 55&lt;br /&gt;switch için kısa yol 57&lt;br /&gt;Döngüler 57&lt;br /&gt;while döngüsü 58&lt;br /&gt;do..while 59&lt;br /&gt;for döngüsü 60&lt;br /&gt;foreach 61&lt;br /&gt;Döngüyü sona erdirmek için: break 61&lt;br /&gt;Döngüyü sürdürmek için: continue 62&lt;br /&gt;Fonksiyonlar 64&lt;br /&gt;Fonksiyon Tanımlama ve Çağırma 64&lt;br /&gt;Fonksiyona varsayılan değer verebiliriz 70&lt;br /&gt;Değişkenlerin kapsamı: global ve static 72&lt;br /&gt;Dizi-Değişkenler, Nesneler 76&lt;br /&gt;Dizi Değişkenler 76&lt;br /&gt;Dizi Değişken Oluşturalım 77&lt;br /&gt;Dizi değişkenleri kullanalım 81&lt;br /&gt;Dizi Değişkenlerin Düzenlenmesi 86&lt;br /&gt;Dizileri birleştirme: array_merge() 86&lt;br /&gt;Dizilere değişken ekleme: array_push() 86&lt;br /&gt;Dizinin ilk elemanını silme: array_shift() 87&lt;br /&gt;Diziden kesit alma: array_slice() 87&lt;br /&gt;Dizileri sıralama: sort() ve rsort() 87&lt;br /&gt;İlişkili dizileri sıralama: asort() ve ksort() 88&lt;br /&gt;Nesneler 88&lt;br /&gt;Bir Nesne Oluşturalım 89&lt;br /&gt;PHP İşbaşında 92&lt;br /&gt;Formlar 92&lt;br /&gt;Form'dan GET Metoduyla Gelen Bilgiler 95&lt;br /&gt;URL Kodları 99&lt;br /&gt;Form'dan POST Metoduyla Gelen Bilgiler 102&lt;br /&gt;Form ile işlemciyi Birleştirelim 104&lt;br /&gt;Dosya "çıkartma" 106&lt;br /&gt;Dosya İşlemleri 109&lt;br /&gt;Harici Dosya (include) 109&lt;br /&gt;include mu, require mı? 111&lt;br /&gt;Dosyalar hakkında bilgi 112&lt;br /&gt;Dosya var mı? file_exits() 112&lt;br /&gt;Dosya mı, dizin mi? is_file() ve is_dir() 112&lt;br /&gt;Dosya okunabilir mi? is_readable() 113&lt;br /&gt;Dosya yazılabilir mi? is_writable() 113&lt;br /&gt;Dosya çalıştırılabilir mi? is_executable() 114&lt;br /&gt;Dosya boyutu: filesize() 114&lt;br /&gt;Dosyaya son erişim tarihi: fileadate(), filemtime() ve filectime() 114&lt;br /&gt;Dosyalar oluşturma ve silme 115&lt;br /&gt;Dosya açma 116&lt;br /&gt;Bir Fonksiyonu durdurmak için: Öl! 116&lt;br /&gt;Dosya okuma: fgets(), fread() ve fgetc() 118&lt;br /&gt;fseek() ile ölçü belirleme 120&lt;br /&gt;Dosyaya yazma ve ek yapma: fwrite() ve fputs() 121&lt;br /&gt;Kullanımdaki dosyayı kilitleyin! 122&lt;br /&gt;Dizinlerle İşlemler 123&lt;br /&gt;Dizin içeriğini listeleme: opendir() ve readdir() 123&lt;br /&gt;Dizin oluşturma: mkdir() 124&lt;br /&gt;Dizin silme: rmdir() 125&lt;br /&gt;Bir Dosya İşlemi Örneği: Konuk Defteri 125&lt;br /&gt;Metin Düzenleme ve Düzenli İfadeler 130&lt;br /&gt;Temel Alfanümerik Fonksiyonları 130&lt;br /&gt;substr() 130&lt;br /&gt;trim() 131&lt;br /&gt;chr() 131&lt;br /&gt;ord() 132&lt;br /&gt;strlen() 132&lt;br /&gt;printf() ve sprintf() 132&lt;br /&gt;number_format() 134&lt;br /&gt;Tarih ve Saat Düzenleme 135&lt;br /&gt;Düzenli İfadeler 137&lt;br /&gt;Eşleştirme deyimleri ve işaretler 137&lt;br /&gt;Düzenli İfadelerde Özel Karakterler 138&lt;br /&gt;Karakter Grupları 139&lt;br /&gt;Düzenli İfade Fonksiyonları 143&lt;br /&gt;ereg() ve eregi() 144&lt;br /&gt;ereg_replace() ve eregi_replace() 145&lt;br /&gt;split() 146&lt;br /&gt;sql_regcase() 147&lt;br /&gt;PHP ile Veritabanı 148&lt;br /&gt;MySQL Veritabanı 149&lt;br /&gt;mySQL veri türleri 150&lt;br /&gt;PHP-MySQL İlişkisi 153&lt;br /&gt;PHP'de Güvenlik 160&lt;br /&gt;Parola ve SSL 161&lt;br /&gt;Tırnak İşareti Sorunu 162&lt;br /&gt;PHP Kaynakları 162&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662453703205024806-7198184842782409717?l=phpprogramlama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpprogramlama.blogspot.com/feeds/7198184842782409717/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1662453703205024806&amp;postID=7198184842782409717' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7198184842782409717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1662453703205024806/posts/default/7198184842782409717'/><link rel='alternate' type='text/html' href='http://phpprogramlama.blogspot.com/2008/03/php-iindekiler.html' title='Php içindekiler'/><author><name>murat2</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
