Php dosya uzantısını almak

+3 oy
735 Görünüm
14, Ocak, 14 Php kategorisinde sıkışan (111 puan) tarafından soruldu

Merhabalar, php de bir dosyanın uzansıtını almak için benim izlediğim yol substr fonksiyonu ile son uzantı rakam sayısına kadar olanı almak.

Uzantılar genelde 3 harfli oluyor (jpg, png, rar, iso) ama bazıları 2, 4 yada daha fazla olabiliyor. Ben bu farklı sayıdaki uzantıları en pratik şekilde nasıl alabilirim bununla ilgili bana örnek verebilir misiniz.

$uzanti = substr($dosya, 0, -3);

 

Paylaş

2 Cevaplar

+2 oy
15, Ocak, 15 pskojhon (197 puan) tarafından cevaplandı
15, Ocak, 15 sıkışan tarafından seçilmiş
 
En İyi Cevap

Merhabalar, php de dosya uzantısını sorunsuz bir şekilde almak için izleyeceğiniz en iyi yol;

  • Dosya ismini "."(nokta) şeklinde böl dizi haline getir.
  • Dizi'nin son değerini bul (Böylece dosyanın isminde birde fazla nokta varsa bile son değer alınacağı için uzantı sağlıklı bir şekilde bulunur)

Örnek;

$dosya = "test.deneme.logosu.jpeg";

$uzanti = end(explode(".", $dosya));

 
 // kodu açalım

 // 1. Nokta ile böl ve değerleri dizi haline getir.
 // 2. Dizinin son elemanını seç.

    1: $bol    = explode(".", $dosya);
    2: $uzantı = end($bol);

 

15, Ocak, 15 sıkışan (111 puan) tarafından yorumlandı
Teşekkürler bayım en mantıklısı bu duruyor.
+1 oy
14, Ocak, 14 KOD-KARTAL (8,685 puan) tarafından cevaplandı

Merhaba sabit bir sayı ile statik son karakterleri almak yerine noktadan sonraki karakterleri almayı deneyebilirsiniz.

Diyelim ki .logo diye uzantımız olsun o zaman substr içinde strpos ile nokta karakterini bulup +1 ile geri kalan karkterlere ulaşabilirsiniz.

<?php $deger = "w3uzman.logo";    
$yazdir = substr($deger, strpos($deger, ".") + 1);    
echo $yazdir;

 

14, Ocak, 14 sıkışan (111 puan) tarafından yorumlandı
Cevap için teşekkür ederim ama "şirket.logosu.logo" diye dosyanın isminde birden fazla nokta varsa nasıl önlem alabiliriz.
Bu Hafta En Aktif Üyeler
...