PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk
Dosya Ayrıştırma Bir yoldaki (path) dosya adını alma $yol = "/home/www/data/users.txt"; printf("Dosya Adı: %s ", basename($yol)); printf("Uzantı içermeyen dosya adı: %s ", basename($yol, ".txt")); Bir yoldaki (path) dosya dizini alma printf("Klasör yolu: %s", dirname($yol)); //Klasör yolu: /home/www/data
Dosya Ayrıştırma $yolBilgisi = pathinfo("/home/www/htdocs/book/chapter10/index.html"); printf("Dir name: %s ", $yolBilgisi['dirname']); printf("Base name: %s ", $yolBilgisi['basename']); printf("Extension: %s ", $yolBilgisi['extension']); Dosya Boyutu $dosya = "WinRAR_362_FULL_McyargiC.exe"; $bytes = filesize($dosya); $kilobytes = round($bytes/1024, 2); printf("%s dosyasi $bytes bytes, veya %.2f kilobytes veya %.2f megabytes.", basename($dosya), $kilobytes, round($kilobytes/1024, 2));
Dosya Ayrıştırma Kalan alan hesaplama $dizin = "F:\Program Files\EasyPHP5.3.0\www\BilgisayarI"; printf("Hard diskte kullanmaya hazır alan= %s : %.2f MB", $dizin, round((disk_free_space($dizin) / ), 2)); Toplam ve Kullanılan Alanı Bulma $kisim = "F:\Program Files\EasyPHP5.3.0\www\BilgisayarI"; // toplam kisim alanını bulma $toplamAlan = disk_total_space($kisim) / ; // Kullanilan Alani Bulma $kullanilanAlan = $toplamAlan - disk_free_space($kisim) / ; printf("kisim: %s (Ayrılan: %.2f MB. Kullanilan: %.2f MB.)", $kisim, $toplamAlan, $kullanilanAlan);
function dizin_boyut($dizin) { $dizinboyut=0; // dizini aç ve içini oku if ($dh { // her bir dizin içeriği için işleme devam et while (($dosyaAdi = readdir ($dh))) { // bazı istenmeyen dizin içeriklerini filtrele if ($dosyaAdi != "." && $dosyaAdi != "..") { // dosya ise boyutunu hesapla ve toplama ekle if (is_file($dizin."/".$dosyaAdi)) $dizinboyut += filesize($dizin."/".$dosyaAdi); // yeni dizin döngüyü tekrar çelıştır if (is_dir($dizin."/".$dosyaAdi)) $dizinboyut += dizin_boyut($dizin."/".$dosyaAdi); return $dizinboyut; } #end dizin_boyut() $dizin = "C:\Program Files\EasyPHP5.3.0\www"; $toplamBoyut = round((dizin_boyut($dizin) / ), 2); printf("dizin %s: %f MB", $dizin,$toplamBoyut);
Ulaşım ve Değişim Bilgileri En son erişilen zaman $dosya = "F:\Program Files\EasyPHP5.3.0\www\BilgisayarI/sifreler.txt"; printf("Dosyaya en son erişilen zaman: %s", date("m-d- y g:i:sa", fileatime($dosya))); En son (izinler, gruplar, erişim vb…)değiştirilen zaman (içerik değil) $dosya = "F:\Program Files\EasyPHP5.3.0\www\BilgisayarI/sifreler.txt"; printf("Dosyada en son değişiklik yapılan zaman: %s", date("m-d-y g:i:sa",filectime($dosya)));
Ulaşım ve Değişim Bilgileri Dosyanın içeriğinin en son değiştiği zaman $dosya = "F:\Program Files\EasyPHP5.3.0\www\BilgisayarI/si freler.txt"; echo "Dosyanın içeriğinin en son değiştiği zaman ".date("m-d-y g:i:sa", filemtime($dosya));
Dosyalarla çalışmak Dosyada yeni satır karakterlerini tanıma // dosyayi okuma amaçlı açmak $fh = fopen("F:\Program Files\EasyPHP5.3.0\www\BilgisayarI/sifreler. txt", "rt"); // dosyanin en sonuna ulaşmadan yeni satirlari almak while (!feof($fh)) echo " ".fgets($fh); // dosyayi kapatma fclose($fh);
Dosyalarla çalışmak Dosyaları değişik amaçlarla açma fopen("F:\Program Files\EasyPHP5.3.0\www\BilgisayarI/sifreler.txt", "rt") r Sadece oku, gösterge en başa. r+ yaz ve oku. gösterge en başa. w Sadece yazma, yazmadan önce içeriği temizle, göstergeyi en başa getir, dosya yoksa önce açmayı dene. w+ yaz ve oku, yazmadan önce içeriği temizle, göstergeyi en başa getir, dosya yoksa önce açmayı dene. a sadece yaz, gösterge en sonda, dosya yoksa açmayı dene, append (ekle) olarak da bilinir. a+ oku ve yaz, gösterge en sonda, dosya yoksa açmayı dene, append (ekle) olarak da bilinir. b dosyayı binary modda açar. t dosyayı text formatında açar.
Dosyalarla çalışmak Dosyayı kapatma fclose($fh); Dosyayı Bir Diziye Okuma // dosyayi dizeye ata $kullanicilar = file("sifreler.txt"); // dizinin içinde işlem yap foreach ($kullanicilar as $kullanici) { // satırları işle, Öğrenci no ve e-postalarını al list($ogrencino, $eposta) = explode(";", $kullanici); // $eposta'dan yeni satır karakterlerini kaldır $eposta = trim($eposta); // eposta adresi ve öğrenci numarasını istenilen biçimde düzenle echo " $ogrencino "; }
Dosyalarla çalışmak Bütün Dosyayı Bir Stringe Atama // diziyi bir string değişkenine ata $kullaniciDosyasi= file_get_contents("sifreler.txt"); // kullanici dosyasinin her bir satırını diziye ata $Kullanicilar = explode("\n",$kullaniciDosyasi); // Dizi içinde işlemler foreach ($Kullanicilar as $kullanici) { // satırlardan ogrenci no ve eposta adreslerini al list($ogrno, $eposta) = explode(";", $kullanici); // Output the formatted name and address echo " $ogrno "; }
Dosyalarla çalışmak Yeni bilgi ekleme // sifreler dosyasına eklemek istediğimiz bilgiler $kullaniciBilgileri = // sifreler.txt dosyasini ac imleci en sona götür $fh = fopen("sifreler.txt", "at"); // veriyi yaz fwrite($fh, $kullaniciBilgileri); // dosyayı kapat fclose($fh); Yeni satıra eklemesini istersek ?? Yeni bilgi ekleme // sifreler dosyasına eklemek istediğimiz bilgiler $kullaniciBilgileri = // sifreler.txt dosyasini ac imleci en sona götür $fh = fopen("sifreler.txt", "at"); // veriyi yaz fwrite($fh, $kullaniciBilgileri); // dosyayı kapat fclose($fh);