Dosya işleme, bir PHP geliştiricisi olarak çok sık yapmanız gereken bir şeydir.
Dosyaları farklı şekillerde işlemek için PHP dosya işleme işlevlerini kullanabilirsiniz. Bu işlevler, uygulamalarınızda özel hata günlüğünden önbelleğe alınmış dosyaların depolanmasına kadar değişen özellikler oluşturmak için kullanılabilir. Bu işlevlerle oluşturabileceğiniz yardımcı araçlara örnekler şunlardır:
- Özel günlük kaydı ve hata ayıklama araçları
- Uygulama yapılandırma depolaması
- Front-End ve uygulama önbelleğe alma
- Yerelleştirme desteği
- ve daha fazlası
PHP, aşağıdakiler gibi çeşitli işlemleri gerçekleştirmenize izin veren çeşitli dosya işleme işlevleri sağlar:
- Dosya oluştur ve aç
- Dosyaya yaz
- Dosyadan oku
- Dosyayı sil
- Dosyayı kapat
Bugün, nasıl kullanılacağına dair örneklerle birlikte her bir dosya işleminden geçeceğiz. Nasıl çalıştıklarını gerçekten öğrenip anlayabilmeniz için, takip ederken bu eğitimdeki örnekleri denemenizi tavsiye ederim. Ve bir şey sizin için beklendiği gibi çalışmazsa, bu eğitimin sonundaki beslemeyi kullanarak sorgularınızı göndermekten çekinmeyin.
Dosya Nasıl Oluşturulur ve Açılır
Bu bölümde nasıl dosya oluşturulup açılacağını göreceğiz.
Bir dosya oluşturmak söz konusu olduğunda, fopen
çoğu zaman kullanmaya başlayacağınız işlevdir.
Bir dosya oluşturmak için bu fonksiyonu kullanmak biraz kafa karıştırıcı görünebilir . Aslında, fopen
işlev iki şey yapar : yoksa bir dosya oluşturur ve ayrıca okumak veya yazmak için açar.
Nasıl çalıştığını anlamak için aşağıdaki örneği inceleyelim;
<?php
$file_handle = fopen('/home/ynet/files/tmp.txt', 'w');
?>
Yukarıdaki örnekte, fopen
fonksiyonu /home/ynet/files/tmp.txt dosyasının var olup olmadığını kontrol edecek ve eğer varsa, yazmak için açacaktır. 'w'
İkinci argümanı sağlayarak , dosyaya yazacağımızı belirtiyoruz. Dosya yoksa, hemen oluşturulur. Burada , yukarıdaki örnekteki / home/ynet/files/ dizininin, fopen
işlevin bir dosya oluşturabilmesi için web sunucusu kullanıcısı tarafından yazılabilir olması gerektiğine dikkat etmek önemlidir.
fopen
Fonksiyonun ilk argümanı, açmak istediğiniz dosya adıdır . Yukarıdaki örnekte, ilk bağımsız değişkende /home/ynet/files/tmp.txt dosya adını sağladık . Yine, mutlak bir yol adı sağladığımızı unutmamak önemlidir.
İkinci argüman, açılan dosyaya ihtiyaç duyduğunuz erişim türünü belirleyen moddur. Fonksiyonu seçebilirsiniz farklı modlar sağlar. Örneğin:
- Okumak için bir dosya açmak için modu kullanın : r
- Okuma yazma ikisi için mod : r+
- okuma ve ekleme modu : a
Örneğimizde, /home/ynet/files/tmp.txt dosyasını yalnızca yazmak için w
açan modu kullandık . İşlev tarafından desteklenen farklı modları görmek için resmi belgeleri gözden geçirmekten çekinmeyin.
fopen
okuma ve yazma gibi diğer dosya işlevleri için kullanılan bir dosya sistemi işaretçisini döndürür.
Uzak Dosyaları Nasıl Açabilirim?
fopen
Fonksiyon sadece yerel dosyalar için değil. Ayrıca diğer protokolleri de destekler ve ağınızda veya web'de başka yerlerden dosya açabilir. allow_url_fopen
Yönergeyi PHP'de etkinleştirdiyseniz, uzak dosyaları da açabilirsiniz.
<?php
$file_handle = fopen('https://your-website-url/tmp.txt', 'r');
?>
Yönergeyi etkinleştirdiğinizde, uzaktan dosya yürütme ve diğer saldırılar için kapıyı açtığından bazı güvenlik riskleri oluşturduğunuzu unutmamak gerçekten önemlidir allow_url_fopen
. Bu yönergeyi etkinleştirecekseniz uygulamanızda ekstra güvenlik önlemleri aldığınızdan emin olun.
PHP İle Dosyaya Nasıl Yazılır
PHP ile bir dosyaya yazmanın birkaç farklı yolu vardır.
fwrite() Fonksiyonu;
Birincisi ve en önemlisi, fwrite
dize içeriklerini dosya tanıtıcısı tarafından referans verilen dosya akışına yazmanıza izin veren işlevdir. Nasıl çalıştığını anlamak için aşağıdaki örneği inceleyelim.
<?php
$file_handle = fopen('/home/ynet/files/tmp.txt', 'a+');
fwrite($file_handle, 'Tuts+ is a great online resource to learn skills you want!');
fwrite($file_handle, "n");
fwrite($file_handle, 'Visit yazilim.net to know more!');
fclose($file_handle);
?>
Öncelikle /home/ynet/files/tmp.txt dosyasını a+
dosyanın sonuna yerleştirilmiş dosya işaretçisi ile okuma ve yazma için açan modda açtık . Böylelikle içeriğimiz diğer içeriklerden sonra dosyanın sonuna eklenecektir. Ardından, fwrite
bir dizge yazmak için işlevi kullandık .
fwrite
Fonksiyonun ilk argümanı, tarafından döndürülen dosya sistemi göstericisidir fopen
- bu, fwrite
nereye yazılacağını nasıl bilir. Ve ikinci argüman, bir dosyaya yazmak istediğimiz bir dizedir. Yukarıdaki örnekte görebileceğiniz gibi fwrite
, dosyayı kapatmadan önce bir dizi dize yazmak için işlevi birden çok kez kullanabilirsiniz.
Son olarak, fclose
dosyayı kapatmak için işlevi kullandık . Kapatmak istediğiniz dosya tanıtıcısı olan tek bir argüman alır. fclose
Dosya işlemlerinizi bitirdikten sonra işlevi kullanarak dosyaları kapatmak her zaman iyi bir uygulamadır.
file_put_contents() Fonksiyonu :
Önceki bölümde, fwrite
bir dosyaya yazmak için kullanılan fonksiyonu gördük. Bir dosyaya yazmak istiyorsanız fopen
ilk etapta onu fonksiyon ile açmanız gerektiğini fark etmişsinizdir . Bundan sonra, fwrite
verilerinizi bir dosyaya yazmak için fclose
işlevi kullanmanız gerekir ve son olarak dosyayı kapatmak için işlevi kullanmanız gerekir .
Bu sana çok fazla geliyorsa, bir kısayol var: file_put_contents
.
file_put_contents
Fonksiyonu tek bir çağrıda bir dosyaya veri yazmak için izin verir.
Nasıl çalıştığını görelim:
<?php
file_put_contents('/home/ynet/files/tmp.txt', "Ynet+ is a great online resource to learn skills you want! n Visit yazilim.net to know more!");
?>
Gördüğünüz gibi, file_put_contents
bir dosyaya sadece bir veri parçası yazmak istediğinizde işlev bir kısayoldur.
PHP'de Bir Dosyadan Nasıl Okunur
Artık nasıl dosya oluşturacağınızı ve bir dosyaya yazacağınızı biliyorsunuz. Bu bölümde size bir dosyadan nasıl okunacağını göstereceğiz:
fread() Fonksiyonu İla Okuma
fread
Fonksiyonu bir dosyadan okumanızı sağlar. Şuna benzer fwrite
, ancak okumak istediğiniz uzunluğu bayt cinsinden sağlamanız gerekir.
Nasıl çalıştığını anlamak için aşağıdaki örneğe bir göz atalım:
<?php
$file_handle = fopen('/home/ynet/files/tmp.txt', 'r');
$contents = fread($file_handle, filesize('/home/ynet/files/tmp.txt'));
fclose($file_handle);
?>
Dosyanın tüm içeriğini $content
değişkene okumak için fread() fonksiyonunu kullandık. Bu fonksiyonun ilk argümanı dosya sistemi göstericisidir, böylece nereden okuyacağını bilir. İkinci argüman, bir dosyadan okumak istediğiniz bayt cinsinden uzunluktur. Bizim durumumuzda, /home/ynet/files/tmp.txt dosyasının tüm içeriğini okumak istiyoruz ve bu nedenle filesize
dosyanın boyutunu ölçmek için işlevi kullandık .
file_get_contents() Fonksiyonu İle Okuma
Önceki bölümde, fread
okumak istediğiniz uzunluğu bayt cinsinden belirterek bir dosyayı okumanıza izin veren fonksiyonu inceledik.
Aynı anda bir dosyanın tamamını okumak istiyorsanız, sadece bunu sağlayan bir fonksiyon var: file_get_contents()
.
Hemen bir örnek ile nasıl çalıştığını görelim :
<?php
$contents = file_get_contents('/home/ynet/files/tmp.txt');
?>
Gördüğünüz gibi, file_get_contents
işlevi kullanmak oldukça basittir - sadece ilk bağımsız değişkende bir dosya adı girin.
PHP'de Dosya Nasıl Silinir
Bu son bölümde, dosyaları nasıl silebileceğinizi göreceğiz. PHP'de bir dosyayı silmek için unlink()
fonksiyonunu kullanın . Nasıl çalıştığını görmek için bir örnek üzerinden geçelim:
<?php
If (unlink('/home/ynet/files/tmp.txt')) {
// file was successfully deleted
} else {
// there was a problem deleting the file
}
?>
unlink()
Fonksiyonun ilk argümanı, silmek istediğiniz bir dosya adıdır. unlink()
Fonksiyonu silme işlemi başarılı olup olmadığını bağlı olarak TRUE
ya FALSE
, verir.