[php] tegenovergestelde functie get_file_ext()

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
ik gebruik deze functie om van een string met een bestandnaam erin de extensie te verkrijgen:
PHP:
1
2
3
4
5
6
<?
function get_file_ext( $filename ) {
ereg( ".*\.([a-zA-z0-9]{0,5})$", $filename, $regs );
return( $regs[1] );
}
?>

maar nu wil ik dat hij het omgekeerde doet, dus niet de extensie te krijgen, maar de bestandsnaam zonder extensie.

Hoe doe ik dit, aangezien ik een absolute newbie ben op het gebiedt van regexp ;) .

  • pimlie
  • Registratie: November 2000
  • Laatst online: 13:13
Ik ben ook niet zon enorme held, maar probeer dit is:
PHP:
1
2
3
4
5
6
<?
function get_file_ext( $filename ) {
ereg(".*\/([a-zA-Z0-9]*?)\.{1}.*", $filename, $regs );
return( $regs[1] );
}
?>

trouwens, als die string gewoon iets is als

$a = "/dir1/dir2/bestand.ext";

kan je makkelijker dit doen:
PHP:
1
2
3
<?
$b = substr($a, strrpos($a, "/")+1, strrpos($a, ".")-strrpos($a, "/")-1);
?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Een regexp als: "(.*)\.[a-zA-z0-9]{0,5}$"

zou kunnen werken, dat is in principe het tegengestelde van die je al had ;)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

zonder regexp:
PHP:
1
2
3
<?
substr($sBestandsnaam, 0, strrpos($sBestandsnaam, "."));
?>

Today's subliminal thought is:


  • Grum
  • Registratie: Juni 2001
  • Niet online
ACM: die van jou geeft ook de dirs terug
Annie: bij jou kan lib.inc.php niet

:P

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op woensdag 10 oktober 2001 19:54 schreef Grum_ het volgende:
ACM: die van jou geeft ook de dirs terug
Annie: bij jou kan lib.inc.php niet

:P
wrom niet? geeft gewoon lib.inc terug.
alleen bestanden zonder ext pikt 'ie niet, maar da's ook zo opgelost met een extra check.
zoiets:
PHP:
1
2
3
<?
substr($sBestand, 0, (strrpos($sBestand, ".")? strrpos($sBestand, ".") : strlen($sBestand)))
?>

Ik zou sowieso voor een string functie gaan, scheelt behoorlijk wat performance tov een regexp.

Today's subliminal thought is:


  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
Op woensdag 10 oktober 2001 17:49 schreef ACM het volgende:
Een regexp als: "(.*)\.[a-zA-z0-9]{0,5}$"

zou kunnen werken, dat is in principe het tegengestelde van die je al had ;)
this should do it

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 oktober 2001 19:54 schreef Grum_ het volgende:
ACM: die van jou geeft ook de dirs terug
Sja, ik geef alleen maar het tegenovergetelde van wat ie al had ;)

Verwijderd

supersook: Ik wil de bestandsnaam zonder extensie krijgen.
Hmmm... en .profile (dot profile) is dan een bestand met puur extensie en een lege bestandsnaam ofzo? :? En ..? :? Misschien dat je met een preciezere vraag betere antwoorden krijgt. :)
Grum_: ACM: die van jou geeft ook de dirs terug
dirs zijn gewoon files. >:)

Verwijderd

ik gebruik atlijd iets als
$ext = explode(".",$filename);
$ext = $ext[count($ext)-1];

Dus waarscheinlijk kun je ook een for loopje maken en dan tellen tot de laatste nie tot en met:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$ext = explode(".",$filename);
$minext = "";
for($i = 0; $i < count($ext)-1;$i++){
  $minext .= $ext[$i];
}

$minext = explode("/",$minext);
$minext - $minext[count($minext)-1];
echo $minext; //bevat alleen het bestand en geen /dir/
?>

Verwijderd

Op donderdag 11 oktober 2001 15:33 schreef GDOG het volgende:
ik gebruik atlijd iets als
$ext = explode(".",$filename);
$ext = $ext[count($ext)-1];

Dus waarscheinlijk kun je ook een for loopje maken en dan tellen tot de laatste nie tot en met:
Kan je mishcien uitleggen wat er in de laaste regel nou gebeurt !?!?
(vooral dat count gedeelte ?!?! ik snap dat er als out put iets moet komen als $ext[0] ofzo maar hoe komt ie er aan !?!?
tot coasters almar

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
Op donderdag 11 oktober 2001 09:29 schreef Arien het volgende:

Hmmm... en .profile (dot profile) is dan een bestand met puur extensie en een lege bestandsnaam ofzo? :? En ..? :? Misschien dat je met een preciezere vraag betere antwoorden krijgt. :)
tja, daar zit wat in, maar de enige bestanden waarbij dat bij mij voorkomt is bij .htacces en .htpasswd
Pagina: 1