webForumDet fria alternativet

Lista filer

3 svar · 386 visningar · startad av Php

PhpMedlem sedan sep. 2001224 inlägg
#1

Hej!
När jag listar ut filerna i en mapp, så skriver den ut filnamnet med filändlsen.
Hur gör jag för att bara skriva ut namnet? Alltså hetter filen abcd.gif, så vill jag att den bara skriver ut abcd.

SnakesMedlem sedan okt. 2004392 inlägg
#2

Testa med substr
KOD:

$namnetpåfilen = substr($namnetpåfilen, 0, -4);

Men, det funkar bara om dem sista bokstäverna är 3 (alltså gif,jpg,mp3,php,asp osv) Har du filer med fler än 3 bokstäver i slutet så testa med explode... och printa ut allt utan det sista i arrayn...

EDIT: så kan en sådan explode se ut...

function refilename($filename) {
	$nfn = explode('.', $filename);
	$fcount = count($nfn)-1;
	$renf = "";
	foreach ($nfn as $refcount => $rerefn){
		if($fcount==$refcount){
			$renf = substr($renf, 0, -1);
		} else {
			$renf = $renf.$rerefn.".";
		}
	}
	return $renf;
}

Sen när du vill skriva ut skriver du bara

echo refilename($namnetpåfilen);
PhpMedlem sedan sep. 2001224 inlägg
#3

Tack!

kjellMedlem sedan dec. 1999757 inlägg
#4

Det finns redan en funktion (strrpos) för att få position på ett angivet tecken så det borde bli samma resultat med

echo ereg_replace(substr($filename,(strrpos($filename,'.'))),'',$filename);

mest som en notering ifall frågan dyker upp igen

127 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)