webForumDet fria alternativet

Lista filer

PHPur PHP

3 svar · 386 visningar · startad av Php

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

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