{"id":4202,"date":"2023-09-03T10:00:25","date_gmt":"2023-09-03T10:00:25","guid":{"rendered":"https:\/\/sunucucozumleri.com\/?p=4202"},"modified":"2023-08-07T21:16:16","modified_gmt":"2023-08-07T21:16:16","slug":"php-ile-dosya-islemleri-ve-yonetimi","status":"publish","type":"post","link":"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/","title":{"rendered":"PHP ile Dosya \u0130\u015flemleri ve Y\u00f6netimi"},"content":{"rendered":"<p>PHP&#8217;de Dosya \u0130\u015flemleri: Kod yazma ve web geli\u015ftirme s\u00fcrecinde, dosya i\u015flemleri olduk\u00e7a \u00f6nemli bir yer tutar. Bu makalede, PHP programlama dilinde dosya i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Dosya olu\u015fturma, veri okuma ve yazma i\u015flemleri, dosya kopyalama, ta\u015f\u0131ma, silme ve d\u00fczenleme gibi temel dosya i\u015flemleriyle ba\u015flayarak, zaman i\u015faretli dosya i\u015flemlerine, dosya ve klas\u00f6r gezinme y\u00f6ntemlerine, dosya izinleri ve g\u00fcvenlik i\u015flemlerine kadar bir\u00e7ok konuyu ele alaca\u011f\u0131z. PHP ile dosya i\u015flemlerini \u00f6\u011frenerek, web projelerinizde daha etkili ve verimli bir \u015fekilde \u00e7al\u0131\u015fabilirsiniz.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Makale \u0130\u00e7eri\u011fi<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u0130\u00e7indekiler Tablosunu A\u00e7\/Kapat\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#PHPde_Dosya_Islemleri_ve_Olusturma\" >PHP&#8217;de Dosya \u0130\u015flemleri ve Olu\u015fturma<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Dosya_Verilerini_Okuma_ve_Yazma_Islemleri\" >Dosya Verilerini Okuma ve Yazma \u0130\u015flemleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Dosya_Kopyalama_ve_Tasima_Islemleri\" >Dosya Kopyalama ve Ta\u015f\u0131ma \u0130\u015flemleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Dosya_Silme_ve_Duzenleme\" >Dosya Silme ve D\u00fczenleme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Dosya_ve_Klasorlerin_Gezilmesi\" >Dosya ve Klas\u00f6rlerin Gezilmesi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Zaman_Isaretli_Dosya_Islemleri\" >Zaman \u0130\u015faretli Dosya \u0130\u015flemleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-dosya-islemleri-ve-yonetimi\/#Dosya_Izinleri_ve_Guvenlik_Islemleri\" >Dosya \u0130zinleri ve G\u00fcvenlik \u0130\u015flemleri<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"PHPde_Dosya_Islemleri_ve_Olusturma\"><\/span>PHP&#8217;de Dosya \u0130\u015flemleri ve Olu\u015fturma<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PHP&#8217;de dosya i\u015flemleri ve olu\u015fturma, web uygulamalar\u0131n\u0131n temel bile\u015fenlerinden biridir. PHP, kullan\u0131c\u0131lar\u0131n sunucuda dosya olu\u015fturmas\u0131na, okumas\u0131na, yazmas\u0131na ve d\u00fczenlemesine olanak tan\u0131r. Bu makalede, PHP&#8217;nin dosya i\u015flemleri ve olu\u015fturma yeteneklerine dair ayr\u0131nt\u0131l\u0131 bilgi verece\u011fiz.<\/p>\n<p><strong>Dosya Olu\u015fturma<\/strong><\/p>\n<p>Dosya olu\u015fturmak i\u00e7in PHP&#8217;de <strong>fopen()<\/strong> i\u015flevini kullanabiliriz. Bu i\u015flev, belirtilen dosya ad\u0131yla yeni bir dosya olu\u015fturur ve bir dosya tan\u0131t\u0131c\u0131s\u0131 d\u00f6nd\u00fcr\u00fcr. A\u015fa\u011f\u0131daki \u00f6rnek, yeni bir dosya olu\u015fturmak i\u00e7in fopen() i\u015flevinin nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 g\u00f6stermektedir.<\/p>\n<p><strong>Kod \u00d6rne\u011fi:<\/strong><\/p>\n<p>$dosya = fopen(&#8220;yeni_dosya.txt&#8221;, &#8220;w&#8221;);<br \/>\nif ($dosya) {<br \/>\n   \/\/ Dosyaya i\u00e7erik yazma veya di\u011fer i\u015flemler<br \/>\n   fclose($dosya);<br \/>\n} else {<br \/>\n   echo &#8220;Dosya olu\u015fturulamad\u0131.&#8221;;<br \/>\n}<\/p>\n<p>Dosya olu\u015fturma i\u015flemi i\u00e7in fopen() i\u015flevine iki parametre ge\u00e7eriz. \u0130lk parametre, olu\u015fturulacak dosyan\u0131n ad\u0131n\u0131 ve yolunu belirtir. \u0130kinci parametre, dosya modunu belirtir. &#8220;w&#8221; modu, yeni bir dosya olu\u015fturur ve e\u011fer belirtilen dosya zaten varsa, \u00fczerine yazar.<\/p>\n<p><strong>Ekipmanlar\u0131n\u0131z\u0131 ve e-ticaret i\u015flerinizi d\u00fczg\u00fcn bir \u015fekilde y\u00f6netmenin bir yolu olarak a\u00e7\u0131n. Ayr\u0131ca, emeklilik mali gereksinimlerinizi kar\u015f\u0131lamak i\u00e7in para ve zaman ay\u0131rma konusunda daha bilin\u00e7li bir se\u00e7enek olabilir.<\/strong><\/p>\n<ul>\n<li>Kolayl\u0131kla yeni dosyalar olu\u015fturabilirsiniz.<\/li>\n<li>Olu\u015fturulan dosyalara i\u00e7erik ekleyebilirsiniz.<\/li>\n<li>Dosyalar\u0131 silebilir veya d\u00fczenleyebilirsiniz.<\/li>\n<li>Dosyalar\u0131 farkl\u0131 formatlarda kaydedebilirsiniz (\u00f6rne\u011fin, metin dosyalar\u0131, csv dosyalar\u0131, xml dosyalar\u0131).<\/li>\n<li>Dosyalar\u0131 farkl\u0131 klas\u00f6rlere ta\u015f\u0131yabilirsiniz.<\/li>\n<\/ul>\n<table>\n<tr>\n<th>File Modu<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>&#8220;r&#8221;<\/td>\n<td>Sadece okuma modu. Dosyay\u0131 okuyabiliriz, ancak i\u00e7erik ekleyemeyiz veya dosyay\u0131 d\u00fczenleyemeyiz.<\/td>\n<\/tr>\n<tr>\n<td>&#8220;w&#8221;<\/td>\n<td>Yazma modu. Dosyay\u0131 olu\u015fturabilir, i\u00e7erik ekleyebilir ve dosyay\u0131 d\u00fczenleyebiliriz.<\/td>\n<\/tr>\n<tr>\n<td>&#8220;a&#8221;<\/td>\n<td>Ekleme modu. Dosyay\u0131 olu\u015fturabilir, i\u00e7erik ekleyebiliriz, ancak dosyan\u0131n sonuna her zaman yeni i\u00e7erik eklenir.<\/td>\n<\/tr>\n<tr>\n<td>&#8220;x&#8221;<\/td>\n<td>Olu\u015fturma modu. Dosyay\u0131 olu\u015fturabilir ve i\u00e7erik ekleyebiliriz, ancak e\u011fer belirtilen dosya zaten varsa, i\u015flem ba\u015far\u0131s\u0131z olur.<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Dosya_Verilerini_Okuma_ve_Yazma_Islemleri\"><\/span>Dosya Verilerini Okuma ve Yazma \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bir programc\u0131 olarak, bilgisayar\u0131n\u0131zdaki dosyalara eri\u015fmeniz ve bu dosyalar \u00fczerinde i\u015flem yapman\u0131z gerekebilir. Verilerin okunmas\u0131 ve yaz\u0131lmas\u0131, dosya i\u015flemlerinin temel bir par\u00e7as\u0131d\u0131r.<\/p>\n<p><strong>Dosya Okuma \u0130\u015flemleri<\/strong><\/p>\n<p>PHP&#8217;de dosyalar\u0131 okumak i\u00e7in <strong>fopen()<\/strong> fonksiyonunu kullanabilirsiniz. Bu fonksiyon, belirtilen dosyay\u0131 a\u00e7ar ve bir dosya tan\u0131t\u0131c\u0131s\u0131 d\u00f6nd\u00fcr\u00fcr. Dosya tan\u0131t\u0131c\u0131s\u0131n\u0131 kullanarak verileri okuyabilirsiniz.<\/p>\n<p>Dosyalar\u0131 sat\u0131r sat\u0131r okuyabilirsiniz. Bunun i\u00e7in <strong>fgets()<\/strong> fonksiyonunu kullanabilirsiniz. Bu fonksiyon, belirtilen dosyadan bir sat\u0131r okur ve bir sonraki sat\u0131ra ge\u00e7er.<\/p>\n<p>Dosyan\u0131n sonuna geldi\u011finizde, dosyay\u0131 kapatmal\u0131s\u0131n\u0131z. Bunun i\u00e7in <strong>fclose()<\/strong> fonksiyonunu kullanabilirsiniz. Bu fonksiyon, belirtilen dosyay\u0131 kapat\u0131r ve bellekteki kaynaklar\u0131 serbest b\u0131rak\u0131r.<\/p>\n<p><strong>Dosya Yazma \u0130\u015flemleri<\/strong><\/p>\n<p>PHP&#8217;de dosyalara veri yazmak i\u00e7in <strong>fwrite()<\/strong> fonksiyonunu kullanabilirsiniz. Bu fonksiyon, belirtilen dosyaya veri yazar. Verileri dosyaya yazmadan \u00f6nce dosyay\u0131 a\u00e7man\u0131z gerekmektedir.<\/p>\n<p>Dosyay\u0131 yazma modunda a\u00e7mak i\u00e7in <strong>fopen()<\/strong> fonksiyonunun ikinci parametresine &#8220;w&#8221; karakterini ekleyebilirsiniz. Bu mod, varolan dosyan\u0131n i\u00e7eri\u011fini siler ve dosyay\u0131 s\u0131f\u0131rdan olu\u015fturur.<\/p>\n<p><strong>\u00d6zet<\/strong><\/p>\n<p>Dosya verilerini okuma ve yazma i\u015flemleri, bir programc\u0131n\u0131n bilgisayar\u0131ndaki dosyalara eri\u015fmesi ve bu dosyalar \u00fczerinde de\u011fi\u015fiklik yapmas\u0131 i\u00e7in \u00f6nemlidir. PHP&#8217;deki baz\u0131 temel dosya i\u015flemleri fonksiyonlar\u0131, dosya a\u00e7ma, veri okuma ve veri yazma gibi i\u015flemleri ger\u00e7ekle\u015ftirmenize olanak tan\u0131r. Dosya i\u015flemlerini yaparken dikkatli olmal\u0131 ve i\u015flemlerini tamamlad\u0131ktan sonra dosyay\u0131 kapatmay\u0131 unutmamal\u0131s\u0131n\u0131z.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dosya_Kopyalama_ve_Tasima_Islemleri\"><\/span>Dosya Kopyalama ve Ta\u015f\u0131ma \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dosya kopyalama ve ta\u015f\u0131ma i\u015flemleri, PHP&#8217;de s\u0131k\u00e7a kullan\u0131lan ve dosya y\u00f6netimi i\u00e7in \u00f6nemli ad\u0131mlard\u0131r. Bu i\u015flemler, dosyalar\u0131 farkl\u0131 dizinlere kopyalaman\u0131za veya ta\u015f\u0131man\u0131za olanak sa\u011flar. Bu sayede dosyalar\u0131n\u0131z\u0131 daha d\u00fczenli bir \u015fekilde saklayabilir veya ba\u015fka bir dizine ta\u015f\u0131yabilirsiniz.<\/p>\n<p>Bir dosyay\u0131 kopyalamak i\u00e7in <strong>copy()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, iki parametre al\u0131r: kaynak dosya ad\u0131 ve hedef dosya ad\u0131. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki kod par\u00e7as\u0131n\u0131 kullanarak bir dosyay\u0131 kopyalayabilirsiniz:<\/p>\n<p>&lt;?php<br \/>\n$srcFile = &#8216;kaynak_dosya.txt&#8217;;<br \/>\n$destFile = &#8216;hedef_dosya.txt&#8217;;<\/p>\n<p>if (copy($srcFile, $destFile)) {<br \/>\n    echo &#8220;Dosya ba\u015far\u0131yla kopyaland\u0131.&#8221;;<br \/>\n} else {<br \/>\n    echo &#8220;Dosya kopyalan\u0131rken bir hata olu\u015ftu.&#8221;;<br \/>\n}<br \/>\n?&gt;<\/p>\n<p>Bir dosyay\u0131 ta\u015f\u0131mak i\u00e7in ise <strong>rename()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, iki parametre al\u0131r: kaynak dosya ad\u0131 ve hedef dosya ad\u0131. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki kod par\u00e7as\u0131n\u0131 kullanarak bir dosyay\u0131 ta\u015f\u0131yabilirsiniz:<\/p>\n<p>&lt;?php<br \/>\n$srcFile = &#8216;kaynak_dosya.txt&#8217;;<br \/>\n$destFile = &#8216;diger_dizin\/hedef_dosya.txt&#8217;;<\/p>\n<p>if (rename($srcFile, $destFile)) {<br \/>\n    echo &#8220;Dosya ba\u015far\u0131yla ta\u015f\u0131nd\u0131.&#8221;;<br \/>\n} else {<br \/>\n    echo &#8220;Dosya ta\u015f\u0131n\u0131rken bir hata olu\u015ftu.&#8221;;<br \/>\n}<br \/>\n?&gt;<\/p>\n<p>Bu i\u015flemleri ger\u00e7ekle\u015ftirirken, dosyan\u0131n bulundu\u011fu dizine ve hedef dizine yazma izinlerinin oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. Aksi takdirde, i\u015flemler ba\u015far\u0131s\u0131z olabilir. Dosyalar\u0131 kopyalarken veya ta\u015f\u0131rken, orijinal dosyalar\u0131n korunmas\u0131n\u0131 isterseniz <strong>copy()<\/strong> veya <strong>rename()<\/strong> fonksiyonunu \u00e7a\u011f\u0131rmadan \u00f6nce hedef dizinde ayn\u0131 isimde bir dosyan\u0131n olup olmad\u0131\u011f\u0131n\u0131 kontrol etmeniz gerekmektedir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dosya_Silme_ve_Duzenleme\"><\/span>Dosya Silme ve D\u00fczenleme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>PHP ile dosya silme ve d\u00fczenleme i\u015flemleri olduk\u00e7a \u00f6nemlidir. Bu i\u015flemler, dosyalar\u0131n\u0131z\u0131 y\u00f6netmenize ve d\u00fczenlemenize yard\u0131mc\u0131 olur. Ayr\u0131ca, gereksiz dosyalar\u0131 silerek depolama alan\u0131 a\u00e7abilirsiniz.<\/p>\n<p>Dosya silme i\u015flemi i\u00e7in <strong>unlink()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, belirtilen dosyay\u0131 siler. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki kod par\u00e7as\u0131yla &#8220;dosya.txt&#8221; adl\u0131 bir dosyay\u0131 silebilirsiniz:<\/p>\n<p>&lt;?php<br \/>\n&nbsp;&nbsp;&nbsp;$dosya = &#8220;dosya.txt&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;if (unlink($dosya)) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;Dosya ba\u015far\u0131yla silindi.&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;} else {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;Dosya silinirken bir hata olu\u015ftu.&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;}<br \/>\n?&gt;<\/p>\n<p>Dosya d\u00fczenleme i\u015flemi i\u00e7in ise <strong>fwrite()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, belirtilen dosyaya veri yazman\u0131z\u0131 sa\u011flar. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki kod par\u00e7as\u0131yla &#8220;dosya.txt&#8221; adl\u0131 bir dosyan\u0131n i\u00e7eri\u011fini de\u011fi\u015ftirebilirsiniz:<\/p>\n<p>&lt;?php<br \/>\n&nbsp;&nbsp;&nbsp;$dosya = &#8220;dosya.txt&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;$icerik = &#8220;Bu dosyan\u0131n i\u00e7eri\u011fi de\u011fi\u015ftirildi!&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;if ($dosya_ekle = fopen($dosya, &#8216;w&#8217;)) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fwrite($dosya_ekle, $icerik)) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;Dosyan\u0131n i\u00e7eri\u011fi ba\u015far\u0131yla de\u011fi\u015ftirildi.&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;Dosyaya veri yazarken bir hata olu\u015ftu.&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose($dosya_ekle);<br \/>\n&nbsp;&nbsp;&nbsp;} else {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;Dosya a\u00e7\u0131l\u0131rken bir hata olu\u015ftu.&#8221;;<br \/>\n&nbsp;&nbsp;&nbsp;}<br \/>\n?&gt;<\/p>\n<p>Yukar\u0131daki \u00f6rneklerde g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, PHP ile dosya silme ve d\u00fczenleme i\u015flemleri olduk\u00e7a basit bir \u015fekilde ger\u00e7ekle\u015ftirilebilir. Bu i\u015flemleri kullanarak dosyalar\u0131n\u0131z\u0131 y\u00f6netebilir ve istedi\u011finiz de\u011fi\u015fiklikleri yapabilirsiniz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dosya_ve_Klasorlerin_Gezilmesi\"><\/span>Dosya ve Klas\u00f6rlerin Gezilmesi<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dosya ve klas\u00f6rlerin gezilmesi, programlama dilleri arac\u0131l\u0131\u011f\u0131yla bilgisayar\u0131m\u0131zdaki dosyalar\u0131 ve klas\u00f6rleri listeleyerek, \u00fczerlerinde i\u015flem yapmam\u0131z\u0131 sa\u011flayan bir i\u015flemdir. Bu i\u015flem, kullan\u0131c\u0131lar\u0131n dosyalara eri\u015fimini kolayla\u015ft\u0131r\u0131rken, programlar\u0131n da dosyalar\u0131 d\u00fczenleyip y\u00f6netebilmesini sa\u011flar.<\/p>\n<p>Dosya ve klas\u00f6r gezinmesi yapmak i\u00e7in bir\u00e7ok farkl\u0131 y\u00f6ntem bulunmaktad\u0131r. Bu y\u00f6ntemlerin ba\u015f\u0131nda dosya yolu \u00fczerinde ilerlemek gelir. \u00d6rne\u011fin, bir dizindeki dosyalar\u0131 listeleyip bunlara eri\u015fmek istiyorsan\u0131z, o dizinin yolunu belirtmeniz gerekir. Bu yol, programlama dillerine g\u00f6re farkl\u0131l\u0131k g\u00f6sterebilir. \u00d6rne\u011fin, PHP&#8217;de dosya yolu i\u00e7in <strong>readdir()<\/strong> veya <strong>glob()<\/strong> gibi fonksiyonlar kullanabilirsiniz.<\/p>\n<p>Bir di\u011fer y\u00f6ntem ise klas\u00f6rlerin alt\u0131ndaki t\u00fcm dosyalar\u0131 ve klas\u00f6rleri dola\u015fmakt\u0131r. Bu i\u015flem i\u00e7in genellikle <strong>rek\u00fcrsif<\/strong> fonksiyonlar kullan\u0131l\u0131r. Rek\u00fcrsif fonksiyonlar, bir fonksiyonun, kendi kendini \u00e7a\u011f\u0131rmas\u0131yla \u00e7al\u0131\u015f\u0131r. Dosya ve klas\u00f6r gezinmesinde, bir klas\u00f6rdeki t\u00fcm dosyalar\u0131 listeleyip ard\u0131ndan alt klas\u00f6rlerdeki dosya ve klas\u00f6rleri ayn\u0131 i\u015flemi yaparak s\u0131ralamam\u0131z\u0131 sa\u011flar. Bu sayede, t\u00fcm alt klas\u00f6rler ve i\u00e7erdikleri dosyalar\u0131 tek bir d\u00f6ng\u00fcyle gezinme i\u015flemi yapabiliriz.<\/p>\n<ul>\n<li>readdir() fonksiyonu: Belirtilen bir dizinden bir sonraki dosya veya klas\u00f6r ad\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li>glob() fonksiyonu: Belirtilen bir desene uyan dosya veya klas\u00f6r adlar\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li>is_dir() fonksiyonu: Belirtilen bir dizin yolunun bir klas\u00f6r olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li>is_file() fonksiyonu: Belirtilen bir dosya yolunun bir dosya olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<\/ul>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<table>\n<tr>\n<th>Fonksiyon<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>readdir()<\/td>\n<td>Bir dizinden bir sonraki dosya veya klas\u00f6r ad\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td>glob()<\/td>\n<td>Bir desene uyan dosya veya klas\u00f6r adlar\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td>is_dir()<\/td>\n<td>Bir dizin yolunun bir klas\u00f6r olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/td>\n<\/tr>\n<tr>\n<td>is_file()<\/td>\n<td>Bir dosya yolunun bir dosya olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Zaman_Isaretli_Dosya_Islemleri\"><\/span>Zaman \u0130\u015faretli Dosya \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Zaman i\u015faretli dosya i\u015flemleri, dosyalar\u0131n olu\u015fturulma, eri\u015fim ve de\u011fi\u015fiklik zamanlar\u0131n\u0131 y\u00f6netmeye olanak sa\u011flayan bir dizi i\u015flemi i\u00e7erir. Bu i\u015flemler, dosya sistemine \u00f6zellikle tarih bilgisi eklemek veya dosyalar\u0131 belirli bir zaman aral\u0131\u011f\u0131na dayanarak s\u0131ralamak i\u00e7in kullan\u0131labilir. PHP&#8217;de zaman i\u015faretli dosya i\u015flemleri yapmak olduk\u00e7a kolayd\u0131r ve bu makalede bu i\u015flemleri nas\u0131l ger\u00e7ekle\u015ftirebilece\u011finizi \u00f6\u011freneceksiniz.<\/p>\n<p>\u0130lk olarak, bir dosyan\u0131n olu\u015fturma zaman\u0131n\u0131 almak i\u00e7in <strong>filectime()<\/strong> i\u015flevini kullanabilirsiniz. Bu i\u015flev, bir dosyan\u0131n olu\u015fturulma tarihini d\u00f6nd\u00fcr\u00fcr. \u00d6rne\u011fin, a\u015fa\u011f\u0131daki kod sat\u0131r\u0131 bir dosyan\u0131n olu\u015fturulma zaman\u0131n\u0131 al\u0131r:<\/p>\n<p>$dosya = &#8220;example.txt&#8221;;<br \/>\n$olusturma_zamani = filectime($dosya);<br \/>\necho &#8220;Dosya olu\u015fturulma zaman\u0131: &#8221; . date(&#8220;d.m.Y H:i:s&#8221;, $olusturma_zamani);<\/p>\n<p>Bu kodda, <strong>filectime()<\/strong> i\u015flevi kullan\u0131larak &#8220;example.txt&#8221; dosyas\u0131n\u0131n olu\u015fturulma zaman\u0131 al\u0131n\u0131r ve <strong>date()<\/strong> i\u015flevi kullan\u0131larak bu zaman bi\u00e7imlenir ve ekrana yazd\u0131r\u0131l\u0131r. <\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dosya_Izinleri_ve_Guvenlik_Islemleri\"><\/span>Dosya \u0130zinleri ve G\u00fcvenlik \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>HTML dosyalar\u0131n\u0131n izinleri ve g\u00fcvenlik i\u015flemleri, web sitelerinin g\u00fcvenli\u011fi ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fc i\u00e7in son derece \u00f6nemlidir. Do\u011fru izinlerin belirlenmemesi veya g\u00fcvenlik \u00f6nlemlerinin yeterli olmamas\u0131 durumunda, potansiyel zararl\u0131lar veya k\u00f6t\u00fc niyetli kullan\u0131c\u0131lar web sitenizin g\u00fcvenli\u011fini tehlikeye atabilir ve veri kayb\u0131na neden olabilir. Bu nedenle, dosya izinleri ve g\u00fcvenlik i\u015flemleri konusunda bilin\u00e7li olmak ve do\u011fru \u00f6nlemleri almak b\u00fcy\u00fck bir \u00f6nem ta\u015f\u0131r.<\/p>\n<p>Web sitesi dosyalar\u0131n\u0131n izinleri, dosyan\u0131n kimin taraf\u0131ndan okunabilece\u011fi, yaz\u0131labilece\u011fi veya \u00e7al\u0131\u015ft\u0131r\u0131labilece\u011fi gibi ayarlar\u0131 belirler. Dosyalar\u0131n yanl\u0131\u015f izinlere sahip olmas\u0131, yetkisiz eri\u015fimlere veya k\u00f6t\u00fc ama\u00e7l\u0131 kullan\u0131c\u0131lara olanak sa\u011flayabilir. Dosya izinleri, dosyan\u0131n sahibinin, sahibin grubunun veya di\u011fer kullan\u0131c\u0131lar\u0131n (herkesin) dosya \u00fczerindeki haklar\u0131n\u0131 belirlemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Dosya izinleri genellikle \u00fc\u00e7 ayr\u0131 kategoriye ayr\u0131l\u0131r: kullan\u0131c\u0131 (user), grup (group) ve di\u011ferleri (others). Her bir kategori i\u00e7in \u00fc\u00e7 farkl\u0131 izin t\u00fcr\u00fc vard\u0131r: okuma (read), yazma (write) ve y\u00fcr\u00fctme (execute). Bu izinler, say\u0131sal bir formatta (genellikle 3 basamakl\u0131 bir say\u0131yla) ifade edilir. \u00d6rne\u011fin, 644 dosya izinleri, dosyan\u0131n kullan\u0131c\u0131 taraf\u0131ndan okunabilece\u011fi ve yaz\u0131labilece\u011fi, ancak grup ve di\u011ferleri taraf\u0131ndan yaln\u0131zca okunabilece\u011fi anlam\u0131na gelir.<\/p>\n<ul>\n<li><strong>Okuma (Read):<\/strong> Dosya i\u00e7eri\u011fini g\u00f6r\u00fcnt\u00fcleme veya okuma izni sa\u011flar. Okuma izni olmayan bir kullan\u0131c\u0131, dosyan\u0131n i\u00e7eri\u011fini g\u00f6r\u00fcnt\u00fcleyemez.<\/li>\n<li><strong>Yazma (Write):<\/strong> Dosyay\u0131 de\u011fi\u015ftirme veya i\u00e7ine yazma izni sa\u011flar. Yazma izni olmayan bir kullan\u0131c\u0131, dosyay\u0131 d\u00fczenleyemez veya i\u00e7ine yazamaz.<\/li>\n<li><strong>Y\u00fcr\u00fctme (Execute):<\/strong> Dosyay\u0131 \u00e7al\u0131\u015ft\u0131rma izni sa\u011flar. Y\u00fcr\u00fctme izni olmayan bir kullan\u0131c\u0131, dosyay\u0131 \u00e7al\u0131\u015ft\u0131ramaz veya y\u00fcr\u00fctemez.<\/li>\n<\/ul>\n<table>\n<tr>\n<th>Dosya \u0130zinleri<\/th>\n<th>\u0130zlemek i\u00e7in Kullan\u0131lan Rakamlar<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>&#8212;<\/td>\n<td>Bilgi yok<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>&#8211;x<\/td>\n<td>Y\u00fcr\u00fctme izni<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>-w-<\/td>\n<td>Yazma izni<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>-wx<\/td>\n<td>Yazma ve y\u00fcr\u00fctme izni<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>r&#8211;<\/td>\n<td>Okuma izni<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>r-x<\/td>\n<td>Okuma ve y\u00fcr\u00fctme izni<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>rw-<\/td>\n<td>Okuma ve yazma izni<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>rwx<\/td>\n<td>Okuma, yazma ve y\u00fcr\u00fctme izni (Tam izin)<\/td>\n<\/tr>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>PHP&#8217;de Dosya \u0130\u015flemleri: Kod yazma ve web geli\u015ftirme s\u00fcrecinde, dosya i\u015flemleri olduk\u00e7a \u00f6nemli bir yer tutar. Bu makalede, PHP programlama dilinde dosya i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Dosya olu\u015fturma, veri okuma ve yazma i\u015flemleri, dosya kopyalama, ta\u015f\u0131ma, silme ve d\u00fczenleme gibi temel dosya i\u015flemleriyle ba\u015flayarak, zaman i\u015faretli dosya i\u015flemlerine, dosya ve klas\u00f6r gezinme y\u00f6ntemlerine, dosya izinleri &hellip;<\/p>\n","protected":false},"author":6,"featured_media":4201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[233],"tags":[],"class_list":["post-4202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"acf":[],"_links":{"self":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/comments?post=4202"}],"version-history":[{"count":0,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4202\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media\/4201"}],"wp:attachment":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media?parent=4202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/categories?post=4202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/tags?post=4202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}