Php ile dosya yüklem işlemlerinde sık kullanılan kodlar ve açıklamaları. Örnek uygulamaların çoğu çalışmaktadır.
//Dosya işlemlerinde kullanılacak fonksiyonlar
/*
file(dizin) : Belirtilen dosyayı okur.
is_dir : Klasör mü?
is_file : Dosya mı?
is_readable : Dosya mevcut ve okunabilir mi?
is_writable : Dosya yazılabilir mi?
is_executable : Dosyanın açılabilir olup olmadığını kontrol eder.
opendir() : Dizini açma işlemini yapar.
readdir() : Açılan dizini okuma işlemini yapar.
mkdir() : Web sunucusunda dizin oluşuturmak için kullanılır.
rmdir() : Dizin silmek için kullanılır.
glob() : Dizindeki tüm dosya ve dizinleri listeler.
rmdir() : Klasör siler.
touch($dosya,izin) : Klasör oluşturur.
fopen($dizin,byte) : Dosyayı açar. İlk parametresinde dosya yolu ikinci parametresi ise okunacak verinin boyutu girilir.
fwrite($dos,$yazdir,byte) : Dosyaya veri yazdımak için kullanılır.,
fputs(fopen($dizin,”r”)) : fwrite gibi çalışır dosyaya istediğimiz veriyi yazdırız.
fread(fopen($dizin,”r”),filesize(byte)): Dosyayı bir seferde okuyup ekrana yazdırmak için kullanılır.
fgetcvs(dosya,byte,|) : Birinci parametrede açılan dosyayı, ikinci parametredeki byte kadar, üçüncü parametredeki işarete göre bölerek diziler şeklinde okur.
feof(fopen($dizin,”r”)) : Açılan dosyada satır sonunua gelindiniğisöyler
fclose(fwrite($dos,$yazdir)): Açılan doyayı kapatır.
fgets(fopen($dizin,”r”)) : Açılan dosyayı okumaya yarayan fonksiyon.
fseek(dizin,byte,SEEK_CUR) : Dosyada istediğimiz boyutta atlama yapar. SEEK_SET=>SEEK_CUR=>SEEK_END
ftell() : fseek fonksiyounu ile birlikte kullanılır atlanılan degerin nerede kaldığını alır.
fgetc : Dosyadan bir byte lı deger okur.
rewind() : Bir doyanın içindeki ilk satıra ulaşmamızı sağlar.
ftruncate(dosya,byte) : Belirtilen bytee’tan sonraki veriyi siler. a+ ile kullanılır.
fpassthru($dizin) : Dosyadaki verileri bir seferde elde etmeye yarar.
fscanf(fopen($dizin,”r”),%s %s) Dosya okuma fonksiyonudur. Dosyadaki verileri boşluklardan ayrıarak her bir veriyi tek tek elde etmemizi sağlar.
file_get_contents(dizin) : Dosya içeriğinin tamamını bir kerede okur. Çok kullanılan bir fonksiyondur.
stream_context_create() : Herhangi bir metot ile istek akımı oluşturulabilir.
file_put_contents(dosya,bilgi,FILE_APPEND): Bir içeriği bir dosyaya yazar.En pratik dosya yazma ve oluşuturma fonksiyonudur. Resimler dahil her dosyayı kayıt edebiliriz. FILE_APPEND ise dosyanın sonuna kaydetmeye yarayan parametresidir.
$_FILES[‘DOSYA’][‘error’] parametreleri ve donen degerler
hatano hatasabiti :açıklama
0 UPLOAD_ERR_OK :Dosya başarı ile yüklendir
1 UPLOAD_ERR_INI_SIZE :PHP.ini dosyasından max dosya boyutu aşıldı
2 UPLOAD_ERR_FORM_SIZE :Formdaki MAX_FILE_SIZE dosya boyutu limiti aşıldı
3 UPLOAD_ERR_PARTIAL :Dosya yükleme işlemi tamamlandı.
4 UPLOAD_ERR_NO_FILE :Yüklenecek dosya yok.
6 UPLOAD_ERR_CANT_WRITE :Dosyaları geçici olarak yükleyeceği dizin tmp bulunamadı.
7 UPLOAD_ERR_CANT_WRITE :Dosya dizin üzerine yazıldı.
8 UPLOAD_ERR_EXTENSION :Dosya yükleme uzantı desteği yok.
file_uploads Dosya gönderimi izni. “Açık”/”On” konumunda olmalıdır.
upload_max_filesize Sunucu ayarındaki maximum dosya boyutu izni.
Varsayılanı 2M sanırım.
upload_tmp_dir Gönderilen dosyaların tutulacağı geçici dizin.
Eğer “no value” ise işletim sisteminizin sağladığı
geçici klasörü kullanır.
post_max_size Aslında post ile gönderilebilecek en yüksek veri
boyutunu belirtir ama dolaylı olarak
dosya gönderimini de etkiler.
$_FILES[‘dosya_yukle’][‘name’] Gönderilen dosyanın orjinal adı.
$_FILES[‘dosya_yukle’][‘type’] Eğer tarayıcı tarafından sağlanmışsa dosyanın
mime türü. ( örneğin: image/gif )
$_FILES[‘dosya_yukle’][‘size’] Byte cinsinden gönderilen dosyanın boyutu.
$_FILES[‘dosya_yukle’][‘tmp_name’] Sunucudaki geçici dosyanın adı.
$_FILES[‘dosya_yukle’][‘error’] İşlemle ilgili hata kodu.
Bu PHP 4.2.0 ve sonrasında eklenmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | <?php header("Content-type: text/html; charset=utf8"); */ // örnek bir fonksiyon function filelistele($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while(($file = readdir($handle)) !== false) { if($file != "." && $file != ".." && $file != "Thumbs.db"/* Gereksiz dosyalar */) { echo '<a target="_blank" href="'.$dir."/".$file.'">'.$file.'</a><br>'."\n"; } } closedir($handle); } } } function sayfasayaca(){ if(file_exists("sayfasayac")){ }else{ touch("sayfasayac"); } } function csvverioku($dosyadizin,$csvboyut,$csvparametre){ if(file_exists($dosyadizin)){ $dosyaac=fopen($dosyadizin,"r"); if($dosyaac){ while(!feof($dosyaac)){ while($csvdeger=fgetcsv($dosyaac,$csvboyut,$csvparametre)){ return $csvdeger; } } echo (fclose($dosyaac)==true) ? "dosya kapandı!":"dosya kapanamadı"; echo $dosyaAdi; }else{ return false; } }else{ return false; } } $dizinAdi = "Cars"; $dosyaname="car.txt"; $dosyaAdi =$dizinAdi."/".$dosyaname; filelistele($dizinAdi); if (file_exists($dosyaAdi) && file_exists($dosyaAdi)) {//dosya dizin var mı ? sonucu true gönderir echo "Dizin ve Dosya var. </br>"; if(is_dir($dizinAdi)==true) echo "is_dir true dosya".is_dir($dizinAdi); else "is_dir dosya değil ".is_dir($dizinAdi); echo "<br>"; if(is_file($dosyaAdi) ==true) echo "is_file dosya".is_file($dosyaAdi); else "is_file".is_file($dosyaAdi)." - ".is_readable($dosyaAdi); echo "<br />"; if(is_readable($dosyaAdi)==true){echo "is_readable okur".is_readable($dosyaAdi);}else{ echo "is_readable okunamaz ".is_readable($dosyaAdi); } echo "<br />"; if(is_writable($dosyaAdi)==true)echo "is_writable dosya yazılabilir".is_writable($dosyaAdi);else echo "is_writable yazılamaz".is_writable($dosyaAdi); echo "<br />"; if(copy($dosyaAdi,"caglar/car.txt")==true)echo "dosya koplandı";else echo "Dosya kopyalanamadı"; echo "<br>"; echo dirname(__FILE__);//Dizin adını verir. echo "<br />"; echo disk_free_space("c:");///Belirtilen dizindeki boş alanı byte cinsinden verir. echo "<br/>"; echo disk_total_space("c:")/1000000000;//Belirtilen dizindeki dolu alanı bayt cininden verir. echo "<br />"; } else { //yoksa yarat mkdir($dizinAdi, 0700);//klasör oluştur. touch($dosyaname, 0700);//dosya oluştur. //rmdir($dizinAdi); } echo "[-------------------------------------------------------------------------------------]<br>"; /* fopen() Fonksiyonunda Kullanılan Parametreler r Sadece okuma işlemleri için erişim sağlar. İmleç dosyanın başına taşınır. r+ Okuma ve yazma işlemleri için erişim sağlar. İmleç dosyanın başına taşınır. w Sadece yazmak için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur ve dosyada veri varsa sıfırlar. İmleç dosyanın başına taşınır. w+ Okuma ve yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur ve dosyada veri varsa sıfırlar. İmleç dosyanın başına taşınır. a Sadece yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur. İmleç dosyanın sonuna taşınır. a+ Okuma ve yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur. İmleç dosyanın sonuna taşınır. x Dosya mevcut değilse oluşturulur ve sadece yazmak için erişim sağlar. Dosya mevcutsa FALSE döndürür. İmleç dosyanın başına taşınır. x+ Dosya mevcut değilse oluşturulur. Okuma ve yazma işlemleri için erişim sağlar. Dosya mevcutsa FALSE döndürür. İmleç dosyanın başına taşınır. */ if(file_exists($dosyaAdi)==true){ $dos=fopen($dosyaAdi,"a");//sadece yazma $yazdir="ÇAĞLAR BOSTANCI son \n";//sadece yazdırılacak metin $dos2=fopen($dosyaAdi,"r+");//okuma ve yazma $basayaz="En başa yazdırılacak metin \n"; $toplam=fread($dos2,10000);//10000bytelık veri bir seferde okur. rewind($dos2);//indexi en başa alır. fwrite($dos2,$basayaz); //fwrite($dos2,$toplam); echo "---- toplam ----".$toplam." -----------toplam----------"; echo (fwrite($dos,$yazdir)==true) ? "VERİ YAZDIRILDI": "VERİ YAZDIRILAMADI"; echo "<br />"; echo (fclose($dos)) ? "doya kapandı!":"Dosaya kapatılamadı"; echo "<br />"; }else{ echo "Dosya oluşuturulamadı!"; } ///// Belirtilen dizindeki dosyayı okur. //$dosyaAdi=>Cars/car.txt if(file_exists($dosyaAdi)){ $dosyaac=fopen($dosyaAdi,"r"); if($dosyaac){ while(!feof($dosyaac)){ echo fgets($dosyaac)."<br />"; } echo (fclose($dosyaac)==true) ? "dosya kapandı!":"dosya kapanamadı"; echo $dosyaAdi; }else{ echo "DOSYA AÇILAMADI"; } }else{ echo "BÖYLE BİR DOSYA YOK "; } foreach(csvverioku("Cars/cvs.txt",1000,"|") as $deger){ print_r($deger); /* for($syci=0;$syci<count($deger);$syci++){ echo $deger[$syci]."<br>"; }*/ } echo count(csvverioku("Cars/cvs.txt",1000,"|")); echo "<br> //////////////////////////////////////////////////////////////////// <br>"; foreach (file("Cars/cvs.txt") as $deger) echo $deger."<br>"; $gelen=glob("."); foreach($gelen as $anahtar => $deger){ echo $anahtar." => ".$deger."<br>"; } print_r(glob("*")); echo "<br>"; //sunucuya dosya yükleme ?> -------------------------------------------------------------<BR /> <form action="dosyayukle.php" method="post" enctype="multipart/form-data"> Gönderilecek dosya: <input name="dosya_yukle" type="file"> <input type="submit" value="Gönder"> </form> ----------------------------------------------------------------------<BR> dosyayukle.php <?php if(isset($_FILES['dosya_yukle'])){ // error degerinin 0 olmadigi tüm durumlar hatalidir. // Buradan faydalanarak eger hata varsa ekrana basiyoruz yok ise isleme geçiyoruz. if($_FILES['dosya_yukle']['error']){ echo 'Bir hata olustu ve dosyaniz alinamadi.'; }else{ copy($_FILES['dosya_yukle']['tmp_name'],'C:/wamp/www/java/caglar2/'.$_FILES['dosya_yukle']['name']); echo '<h4>Dosyaniz alindi.</h4> Alinan dosya bilgileri <br/>Isim:'.$_FILES['dosya_yukle']['name'].'<br/>'; echo 'Boyut: '.($_FILES['dosya_yukle']['size']/1024).' KB<br>'; echo 'Türü : '.$_FILES['dosya_yukle']['type'].'<hr>'; } }else{} |