Başlangıç > Kodlar > PHP ile dosya işlemleri

PHP ile dosya işlemleri

Ders notlarımdan kesitler.
#-> Dosya oluşturma
#-> Dosya oluşturuldu mu?
#-> Dosya, dosya mıdır?
#-> Dosya silme
#-> Dosya okunabilir mi?
#-> Dosya yazılabilir mi?
#-> Dosyadan veri okuma
#-> Dosyaya veri kaydetme
#-> Dosya boyutu
#-> Dosyaya en son ne zaman ulaşıldı?
#-> Dosya en son ne zaman değiştirildi?
#-> Dosya en son ne zaman düzenlenmiş?
#-> Dizin mi dosya mı?
#-> Dosya kopyalama
#-> Glob
#-> Yeniden adlandırma
#-> Dosya uzantısı bulma

Yukarıda saydıklarıma ilişkin uygulamalar:

####################
<?php

/**
* @author
* @copyright 2009
*/
// Dosya oluşturma; touch komutu
$Dosya_url="D:\\kim.txt";
touch($Dosya_url);
if(file_exists($Dosya_url)){
echo "Dosya oluşturuldu";
}else {
echo "Dosya oluşturulamadı";
}
echo "<p></p>";
//Dosya oluşturma II.yol
touch("kim.txt");
if(file_exists("kim.txt")){
echo "Kök dizinde Dosya oluşturuldu";
}else {echo "Kök dizinde dosya oluşturalamadı";
}

#şimdi file_exists ve touch komuatlarını birleştirelim
echo "<pre>";
if(touch("c:\\yeni.txt")){//adres yolu ve dosya belirterek dosya oluşturduk.
echo "Dosya oluşturuldu";
}else{echo "dosya oluşturulamadı";}
echo "<p></p>";
//Dosya, Dosya mıdır?Adını yazdığımız bir nesnenin
//dosya olup olmadığını is_file ile anlayacağız
if(is_file($Dosya_url)){
echo "kim.txt bir dosyadır";
}else {echo "kim.txt bir dosya değildir.";}//dizin de olabilir:)
echo "<br><br>";
//Dosya silme unlink komutu ile

if(unlink($Dosya_url)){
echo "Dosya silindi";
}else {
echo "Dosya silinemedi";
}echo "<br><br>";
if(file_exists($Dosya_url)){
echo "Dosya mevcut<br><br>";
}else {echo "Dosya mevcut değil<br>";}

//Dosya okunabilir mi? is_readable

if(is_readable("c:\\yeni.txt")){
echo "Dosya okunabilir<br><br>";
}else {echo "Dosya okunamaz<br><br>";}

//Dosya yazılabilir mi? is_writable
if(is_writable("c:\\yeni.txt")){
echo "dosya yazılabilir";

}else{ echo "Dosya yazılamaz";
}
echo "<br><br>";

?>
#################################
<?php

/**
* @author
* @copyright 2009
*/

//DOSYADAN VERİ OKUMA
/*Dosyadan veri okuma veritabanında veri okuma mantığıyla aynı. Fkat biz
veritabanını bilmediğimizden dolayı konuya açıklık getirelim. Sırası ile
dosyadan verinin nasıl okunduğunu görelim
1=>Dosyaya bağlan
2=>Veriyi oku/yaz
3=>Bağlantıyı kapat

Dosya bağlanmak için fopen komutu kullanılır. Fakat fopen komutunun bir kaç parametresi var. Sıra ile bu parametreleri açıklayalım

1=> r dosya sadece okumak için açılır. imleç dosyanın başındadır.
2=> r+ dosya hem okumak için hemde yazmak için açılır.
3=>w dosya sadece yazmak için açılır. imleç doyanın başındadır.
4=>w+ dosya hem yazmak hemde okumak için açılır
5=>a dosya sadece yazmak için açılır. imleç dosyanın sonundadır. dosyanın
sonuna veri eklenecekse kullanılır.
6=> a+ dosya hem okumak hem de yazmak için açılır. imleç dosyanın sonundadır. dosya yoksa oluşturulur.
*/

//Dosyadan Veri okuma: fgets,fread,feof komutlarından biri ile yapılır.
//sıra ile bu okuma komutlarını kullanalım

//fread: Fread’in ne kadar veri okuyacağını belirtmemiz gerek
$baglanti=fopen("deneme.txt","r");
echo fread($baglanti,1024);//1024 byte lık veri okuduk. ama dosyanın boyutunu nerden bilecem???
fclose($baglanti);//bağlantıyı kapatmayı unutmayalım:)

?>
##########################################################
<?php

/**
* @author
* @copyright 2009
*/

$baglanti=fopen("deneme.txt","r");//dosyaya bağlan
while(!feof($baglanti)){//sonuna kadar oku
echo fread($baglanti,1024);//1024 byte lık veriyi yaz
}fclose($baglanti);

?>
##########################################
<?php

/**
* @author
* @copyright 2009
*/
//fgets ile veriyi satır satır okuma
$baglanti=fopen("ornek.txt","r");//bağlandık
while(!feof($baglanti)){//baştan sona dosyayı okuduk
echo fgets($baglanti);//satır satır veriler okundu
echo "<br>";
}fclose($baglanti);

?>
##############################################
<?php

/**
* @author
* @copyright 2009
*/

//döngülerle ve dosya büyüklükleriyle dosya okumak için fpassthru komutu
$baglanti=fopen("ornek.txt","r");
fpassthru($baglanti);
fclose($baglanti);//bağlantıyı kapatmayı unutmayalım

//ve bağlantılarla ve bağlantıları kapatma derdi olmayan son komut
//readfile komutu
echo "<p></p>";
readfile("deneme.txt");

?>
##########################################
<?php

/**
* @author
* @copyright 2009
*/
//Dosyaya veri kaydetme: fputs fonksiyonu
if(touch(bos.txt)){ //önce boş bir dosya oluşturduk
echo "dosya oluştu<br><br>";
}else {echo "H A T A";}

$baglanti=fopen("bos.txt","a+");//parametreye dikkat a+ kullandık
if(fputs($baglanti,"Şeyh Şamil Ders Notları")){
echo "Veri kaydedildi";
}else {echo "Oops Veri kaydedilmedi";
}fclose($baglanti);//Aman bağlantıyı kapatmayı unutmayalım
echo "<p></p>";
//dosyamızı okuyalım
readfile("bos.txt");

?>
#####################################################
<?php

/**
* @author
* @copyright 2009
*/

//Dosyanın boyutu: filesize
echo filesize("deneme.txt");//byte cinsinden görüntüler
$url="D:\\Serdar Çağlar\\e-book\\PhpDersleri-ekitap\\php.txt";//244 kb lik veri
echo "<br>".filesize($url);//farklı bir yöntem
echo "<br>";
$baglanti=fopen($url,"r");
echo fread($baglanti,filesize($url));
fclose($baglanti);
echo "<pre>";

?>
##############################################
<?php

/**
* @author
* @copyright 2009
*/

//Dosyaya en son ne zaman erişildi: fileatime komutu

echo fileatime("deneme.txt");//Tabi tarih fonksiyonunu kullanarak biraz düzenleme
//yapmalıyız.
echo "<pre>";
echo date("d M Y H:i:s",fileatime("deneme.txt"));
echo "<pre>";

//dosya en son ne zaman değiştirilmiş: filectime komutu

echo date("d M Y H:i:s",filectime("deneme.txt"));
echo "<pre>";
//Dosya en son ne zaman düzenlenmiş: filemtime

echo date("d M Y H:i:s",filemtime("deneme.txt"));

//Dosyanın tipi nedir. filetype
//nesnenin bize dosya mı yoksa dizin mi olduğunu verir
echo "<pre>";
switch(filetype("deneme")){//deneme adında bir dizin oluşturmayı unutmayın
case file: echo "Bu bir dosya";
break;
case dir: echo "bu bir dizin";
break;
}
echo "<br><br>";
//ya da daha kısa bir yolla
echo filetype("deneme");//ekran çıktısı "dir" olur(dizin anlamında)
echo "<p></p>";

//Dosya kopyalama: copy("kaynak dosya","Hedef dosya")
$kaynakdosya="C:\\AppServ\\www\\deneme.txt";
$hedefdosya="C:\\AppServ\\www\\deneme\\yeni.txt";
if(copy($kaynakdosya,$hedefdosya)){
echo "Kopyalama işlemi başarılı";
}else{
echo "kopyalama işlemi başarısız";
}

?>
###################################################
<?php

//uzantısını seçtiğimiz dosyaları listeler
$liste=glob("*.php");
$i=1;
do {
echo $liste[$i]."<br>";
$i++;
}while($i<=count($liste)-1);

echo "<br><br>";
// Dosya ya da dizin yeniden adlandırma: rename("dosyaismi","yenidosyaismi")

if(touch("serdar.txt")){//Dosya oluşturduk
echo "Dosya oluşturuldu";
}else {
echo "Dosya oluşturulamadı";
}echo "<br>";
//touch komutuna aslında gerek yoktu. Çünkü a+ parametresi doya yoksa oluşturur
$baglanti=fopen("serdar.txt","a+");//Bağlandık
if(fputs($baglanti,"Serdar çağlar")){//Verileri ekledik
echo "veri kaydedildi";
}else "işlem başarısız";
fclose($baglanti);//bağlantıyı sonlandırdık

//Şimdi yeni dosyamızın adını değişelim
if(rename("serdar.txt","Şeyh_Şamil.txt")){//adını değiştik
echo "işlem başarı ile gerçekleşti";
}else "İşlem başarısız";
echo "<br>";
if(file_exists("Şeyh_Şamil.txt")){//Dosyanın varlığını kontrol ettik
echo "Dosya mevcut";
}else {
echo "Dosya mevcut değil";
}
echo "<br>";
//Dosyanın uzantısını ve ismini bulma
/*php bir çok özelliğine rağmen dosya uzantısını bulacak bir fonksiyona sahip değil
fakat dosya uzantısını bulmaya yarayan ufak bir kod satırı yazabiliriz.*/
$dosya="deneme.txt";
list($dosya_adi,$dosya_uzantisi)=explode(".",$dosya);
echo "Dosya adı: ".$dosya_adi."<br>";
echo "Dosya uzantısı: ".$dosya_uzantisi."<br>";

echo "<pre>";
//peki ya dosya adında birden fazla "."(nokta) varsa nasıl uzantıyı bulacağız.

$garip_dosya="onun.bunun.dosyası.txt";
$dosya_uzanti=end(explode(".",$garip_dosya));
echo $dosya_uzanti;

?>
###############################################################3

Reklamlar
Kategoriler:Kodlar Etiketler:, ,
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: