Prosím Vás, nevíte, jak zjistím příponu určitého souboru? PHP manuál bez rady, nikde na webu nenalezeno...Děkuji
Fórum › PHP
Zjištění přípony souboru
mam takovej pocit že toto počítá pouze s jednou tečkou .. :-( co když je jich více?
super. díky ;-) také se hodí ;-)
Jan Škrášek - Mozna by bylo dobre si ten script rozebrat a pak neco tvrdit :)
$pripona = strtolower(substr($soubor,strrpos($soubor,'.') + 1));
strtolower - mala pismena (selze v pripade diakritiky a jineho kodovani)
substr - orezat string
strrpos - pozice retezce hledaneho od konce
survik1
Na priponu se neda spolehat. Co kdyz to zadnou priponu nema. Tak to nema ani zadnou tecku. A co kdyz ta pripona se neshoduje s mime-type? Udelam si jpeg obrazek, priponu dam pdf.
Ale predpokladam, ze ti jde jen o zobrazeni pripony souboru ne zjistovani skutecneho typu dat. Pak je to ok.
asi bych pouzil toto: http://php.net/manual/en/function.pathinfo.php
Píšou tam toto:
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['filename'], "\n"; // output: lib.inc
?>
Nemám ozkoušené, ale manuálu bych věřil
Jen si rejpnu do Péťi...
strtolower samozřejmě pracuje s diakritikou, ale pokud používáš Multibyte (což je dle tvého komentáře celkem jasné), tak ti to samozřejmě fungovat nebude a musíš to použít trochu jinak. Když se řekne A je potřeba říci B.
jinak nejčistější řešení je použít regulárek
Sakra písek...zase jsem na to narazil. No tak pro příští generace:
function GetFileName($val)
{
$name = $val;
$suffix = '';
if(preg_match('/^(.*)\.([^\.]+)$/',$val,$matche))
{
$name = $matche[1];
$suffix = $matche[2];
}
return array($name,$suffix);
}
list($name,$suffix) = GetFileName($fileName);
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Zjištění cesty k souboru — založil Redby
Zjištění šifry souboru — založil Lyso
Zjištěni času souboru — založil Začátečník
Zjištění počtu souborů ve složce — založil matyaspoko
Zjisteni poctu souboru ve slozce — založil papirek
Moderátoři diskuze