+3 oy
2.8k Görünüm
Php kategorisinde (128 puan) tarafından

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
(232 puan) tarafından
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);

 

(128 puan) tarafından
Teşekkürler bayım en mantıklısı bu duruyor.
+1 oy
(10.6k puan) tarafından

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;

 

(128 puan) tarafından
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
    ...