PHP fopen() fonksiyonu
Tanım ve Kullanım
fopen() fonksiyonu, dosya veya URL'yi açar.
Açma başarısız olursa, bu fonksiyon FALSE döner.
Sözdizimi
fopen(filename,mode,include_path,context)
Parametreler | Açıklama |
---|---|
filename | Gerekli. Açılacak dosya veya URL'yi belirler. |
mode | Gerekli. Dosya/akışa erişim türünü belirler. Alt tabloda gösterilen değerler olabilir. |
include_path | İsteğe bağlı. include_path'te de dosya araması yapılması gerekiyorsa, bu parametreyi 1 veya TRUE olarak ayarlayabilirsiniz. |
context | İsteğe bağlı. Dosya işaretçisi ortamını belirler. Context, akışın davranışını değiştirebilecek bir dizi seçenek sunar. |
mode parametresinin olası değerleri
mode | tanımı |
---|---|
"r" | Sadece okuma modunda açın, dosya işaretçisini dosya başına yönlendirin. |
"r+" | Yazı ve okuma modunda açın, dosya işaretçisini dosya başına yönlendirin. |
"w" | Yazı modunda açın, dosya işaretçisini dosya başına yönlendirin ve dosya boyutunu sıfıra kesin. Dosya yoksa, oluşturma denemelidir. |
"w+" | Yazı ve okuma modunda açın, dosya işaretçisini dosya başına yönlendirin ve dosya boyutunu sıfıra kesin. Dosya yoksa, oluşturma denemelidir. |
"a" | Yazı modunda açın, dosya işaretçisini dosya sonuna yönlendirin. Dosya yoksa, oluşturma denemelidir. |
"a+" | Yazı ve okuma modunda açın, dosya işaretçisini dosya sonuna yönlendirin. Dosya yoksa, oluşturma denemelidir. |
"x" |
Dosyayı oluşturun ve yazı modunda açın, dosya işaretçisini dosya başına yönlendirin. Dosya zaten varsa, fopen() çağrısı başarısız olur ve FALSE döner ve bir E_WARNING seviyesinde hata mesajı oluşturur. Dosya yoksa, oluşturma denemelidir. Bu, alt tabanlı open(2) sistem çağrısına O_EXCL|O_CREAT işaretini belirlemekle eşdeğerdir. seçeneği, PHP 4.3.2 ve sonraki sürümler tarafından desteklenir ve sadece yerel dosyalar için kullanılabilir. |
"x+" |
oluşturur ve okuma/yazma modunda açar, dosya işaretçisini dosya başına yerleştirir. Eğer dosya mevcutsa, fopen() çağrısı başarısız olur ve FALSE döner, E_WARNING seviyesinde bir hata mesajı oluşturur ve eğer dosya mevcut değilse oluşturulmaya çalışır. Bu, alt tabanlı open(2) sistem çağrısına O_EXCL|O_CREAT işaretini belirlemekle eşdeğerdir. seçeneği, PHP 4.3.2 ve sonraki sürümler tarafından desteklenir ve sadece yerel dosyalar için kullanılabilir. |
tanımı
fopen() filename belirtilen adlı kaynak bir akıma bağlanır. Eğer filename "scheme://..." formatında ise bir URL olarak algılanır, PHP bu modu işleymek için protokol işleyicisini (dağlıklı protokol olarak da bilinir) arar. Eğer bu protokol henüz kayıtlı bir dağlıklı protokol değilse, PHP scriptte potansiyel sorunları kontrol etmek için bir mesaj çıkarır ve filename normal bir dosya adı olarak devam eder.
PHP'nin filename belirtilen bir yerel dosya ise, bu dosyada bir akım açmaya çalışır. Bu dosya PHP'nin erişebileceği olmalıdır, bu yüzden dosya erişim izinlerinin bu erişimi sağladığı onaylanmalıdır. Güvenlik modu veya open_basedir etkinse, ek sınırlamalar uygulanabilir.
PHP'nin filename belirtilen bir kayıtlı protokol, bu protokol bir ağ URL olarak kaydedilmiş bir protokoldür ve PHP, allow_url_fopen'nin etkin olup olmadığını kontrol eder ve doğrular. Eğer kapatıldıysa, PHP bir uyarı çıkarır ve fopen çağrısı başarısız olur.
için context desteği PHP 5.0.0 ile eklenmiştir.
İpuçları ve açıklamalar
Açıklama:Farklı işletim sistem aileleri farklı satır sonlandırma alışkanlıklarına sahiptir. Bir metin dosyasına yeni bir satır eklemek istediğinizde, işletim sisteminize uygun satır sonlandırma işaretini kullanmanız gerekir. Unix tabanlı sistemler \n olarak satır sonlandırma karakteri kullanır, Windows tabanlı sistemler \r\n olarak satır sonlandırma karakteri kullanır, Macintosh tabanlı sistemler \r olarak satır sonlandırma karakteri kullanır. Dosyaya yazarken yanlış satır sonlandırma işareti kullanıldığında, diğer uygulamalar bu dosyaları açtığında garip davranabilir.
Windows altında bir metin dönüşüm işareti (\
Öntanımlı dönüşüm modu SAPI ve kullanılan PHP sürümüne bağlıdır, bu yüzden taşınabilirlik için her zaman doğru işareti belirterek teşvik edilir. Sadece metin dosyalarını işlemek ve scriptte \n olarak satır sonlandırıcı kullanmak, ancak bu dosyaların Notepad gibi diğer uygulamalar tarafından okunmasını beklemek istiyorsanız, mode'da "t" kullanın. Tüm diğer durumlarda "b" kullanın.
İkili dosyaları işlemek için "b" işareti belirtilmemişse, bozuk resim dosyaları ve \r\n karakterleri hakkında garip sorunlarla karşılaşabilirsiniz.
Açıklama:Taşınabilirlik için, fopen() fonksiyonunu kullanırken her zaman "b" işareti kullanmanız şiddetle tavsiye edilir.
Açıklama:Bir kez daha, taşınabilirlik için, "t" moduna bağlı olan kodları doğru satır sonlandırıcıları kullanarak "b" moduna geçirmeniz için şiddetle tavsiye edilir.
Örnek
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>