[PHP] Verilen dosyanın formatını bulmak (explode dersi)

Silverday

Altın Üye
Altın Üye
Katılım
3 May 2006
Mesajlar
3,551
Reaction score
0
Puanları
0
Konum
sakarya
formatı bulmak için explode fonksiyonunu kullanıcaz.
explode(ayrılacak karakter, yazı)
yani ne demek bu, ben mesela bir yazıyı virgüllerden ayırıcam
PHP:
explode(",", "yazımız");
şeklinde giriyorum..
örnek:
PHP:
$ayir = explode(",", "hack,hell, örnek yazı, silverday");

tabiki bu deişkene atandığı için bi tepki vermeyecektir..
fakat explode fonksiyonu kendisine atanan değişkeni array içine alır
yani aslında şu şekildedir arka planda
PHP:
$ayir = array("hack", "hell", " örnek yazı", " silverday");
umarım anlatabilmişimdir.. yani $ayir[0], $ayir[1] şeklinde gidicektir..

gelelim asıl konumuza dosyanın formatını bulmaya..
formatı bulmak için explode fonksiyonunda nokta ile ayırmamız gerekecek..
deneyelim:
PHP:
$dosya = "resim.jpg";
$ayir = explode(".", $dosya);

print $ayir["1"];

ekrana hemen jpg yazacaktır..fakat dosya isminde birden fazla nokta olabilir,
bunun içinde şu mantığı kullanacağız:
nokta ile ayrılanlardan sonuncusu :goz:
yapalım:

PHP:
<?php

$dosya = "23.07.2008 tarihli dosyam.rar";
$ayir = explode(".", $dosya);
// count fonksiyonu bir array'da kaç adet değer olduğunu sayar
// hatırlarsanız en yukarda aslında explode cümleyi array'a ayırır demiştik
$sonuncu = count($ayir);
// formatı büyük yazdırıyorum JPG gibi
$format = strtoupper($ayir["$sonuncu"]);
print "Dosyanın Formatı: ". $format . "'dır";

?>

şimdide geliştirip fonksiyon yapalım.

PHP:
<?php
// dosya format by Silverday 21.07.2008 $ 22.15 gmt+2
function dosya_formati($dosya) {
$ayir = explode(".", $dosya);
$count = count($ayir);
return strtoupper($ayir["$count"]);
}
?>

kullanımı:

PHP:
<?php
$dosya = "deneme.txt";

print dosya_formati($dosya);

?>

silver ((=
 
Geri
Üst