Lista filer

PHP

3 svar · 391 visningar · startad av Php

Medlem sedan sep. 2001224 inlägg
Trådstart#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.

Medlem 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);
Medlem sedan sep. 2001224 inlägg
#3

Tack!

Medlem 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

261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)