Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 13:38 Der er 20 kommentarer og
1 løsning

fjern filendelse

hvordan fjerner jeg filendelserne fra filer jeg læser i et dir. (.txt , .html, .jpg osv.osv.) før jeg tildeler resultatet til en variabel ???
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 13:41 #1
Du kunne f.eks.:

$filnavn = "mintilaefldigefil.jpg";
$filnavn = substr($filnavn, 0, strlen($filnavn)-4);
Avatar billede iss Novice
16. juni 2006 - 13:42 #2
Vil ikke virk på .html...
Avatar billede iss Novice
16. juni 2006 - 13:44 #3
Ville måske lave det som...
$filarray = explode(".", $fil);
unset($filarray[count($filarray)-1]);
$fil = explode(".", $filarray);
kan ikke lige huske om der findes en funktion der søger fra slut af en streng... ville være en del nemmere...
Avatar billede iss Novice
16. juni 2006 - 13:48 #4
$fil = substr($fil, 0, strrpos($fil, "."));

ikke lige testet, måske skal der lægges en til eller trækkes fra... prøv...
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 13:49 #5
Du har ret, iis.
Så ville jeg nok gøre det på denne måde:

$filnavn = "in.minhtmlfil.html";
$filnavn = preg_replace("/\.(?<=\.)[\w]+$/", "", $filnavn);

Noget i den duer :)
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 13:50 #6
ahh... ja, genialt, iss, det virker selvfølgelig :-)  simpelt og effektivt
Avatar billede hmortensen Nybegynder
16. juni 2006 - 13:51 #7
Det er korrekt iss, skulle til at poste samme løsning ;)
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 14:00 #8
hmortensen: nu må du lige holde op, min reg.exp. løsning kan bruges i alle sprog ;)
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 14:01 #9
(som iøvrigt ville kunne skrives \.\w+$  i stedet.... jeg skal nok stoppe mit spam nu)
Avatar billede hmortensen Nybegynder
16. juni 2006 - 14:01 #10
Men er dog mere krævende.
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 15:13 #11
Sikke mange spændende svar :-)
Jeg aner ikke meget om PHP ... men så vidt jeg kan læse ud af jeres svar så er det $fil = substr($fil, 0, strrpos($fil, ".")); jeg skal bruge ? Den vil fjerne . og det der kommer efter ??

Det prøver jeg... *S*
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 15:17 #12
Fedt ... virker perfekt ... (tror jeg)

svar lige et smid


(Nu er det blot om jeg kan finde ud af resten...*G*)
Avatar billede iss Novice
16. juni 2006 - 15:39 #13
Jeg svar ikke et smidder, behold bare dine point, med mindre der er en af de andre der vil have dem...
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 16:14 #14
Jeg tager dem ikke når iss kom med den bedste løsning ;)
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 18:07 #15
Hmmm ... Man burde kunne overføre sådanne point til red barnet eller ligende ?

*S* ...
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 18:23 #16
Hehe, det ville de sikkert blive glade for.. eller noget...  god tanke ;)
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 18:37 #17
Jeg kan jo også forsætte med at spørger til en af jer selv mener at have fortjænt pointne :-)

Denne her kan jeg nix få til at virke
$filedata = file_get_contents('logs/','$filename');
echo "document.write('$filedata');\n";

(forsøgt flere kombinationer)
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 18:50 #18
Umiddelbart ser det jo rigtigt nok ud. Hvor går det galt? Indeholder filedata noget? er det filedata der indeholder noget suspekt der får document.write() til at gå amok? Har du husket <script> og </script> rundt om document.write()  ?
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 18:58 #19
Den skriver bare arrey... og nej intet suspekt ... de indeholder kun tal
Og ja/nej mht script *S*

Men pyt nu...fandt en anden måde :-) (ære være google)

$file = "./logs/" . $filename ;
$handle = fopen($file, "r");
$filedata = fread($handle, filesize($file));
fclose($handle);
echo "document.write('$filedata','<br>');\n";

Det funger *Smiler stolt*
Avatar billede gizmo-gizmo Nybegynder
16. juni 2006 - 19:04 #20
Godt det virker nu ;) så endte det hvis med at du selv fortjente de points :)

Jeg tror at årsagen til at du ikke kunne få file_get_contents til at virke, er at du har sat et komma her:

$filedata = file_get_contents('logs/','$filename');

mellem logs og $filename. Det skulle vel have været et punktum?
Avatar billede jesper-moeller Nybegynder
16. juni 2006 - 19:48 #21
Oki... *S* ... så lærte jeg da det ....
Er mit første forsøg med at lave PHP .. så jeg sider bare og kigger på eksempler og klipper/klistre ting sammen jeg finde . og håber så at få det til at virke ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester