Avatar billede angelenglen Nybegynder
23. marts 2003 - 20:56 Der er 14 kommentarer og
2 løsninger

tilføj random number til enden af filnavn.

jeg har en variabel: $file_name
-den indeholder filnavnet på den fil jeg er ved at uploade i mit upload-script.

jeg har en check på, der sørger for at det kun kan være filer af typen: jpg, jpeg, gif eller png

her kommer så mit problem:

$randomnumber = Rand(10000,32767);
$file_name = $file_name . "_" . $randomnumber;

-dét er hvad jeg har gjort nu, men det virker, for det generere et filnavn i stil med:
whatever.jpg_31565 - problemet er så at den smider _randommumber ind EFTER fil.efternavnet - det skal ind lige før ...

jeg går ud fra at der skal brugen en eller anden form for explode, men da jeg ikke kender den funktion, spørger jeg her...

det ville være smart hvis fx det random tal kunne indsættes lige før sidste . i navnet - det kan jo ikke være første i tilfælde af at man rendte ind i et filnavn der hed:
whatever.test.whatever.jpg - så ville den jo generere:
whatever_31344test.whatever.jpg istedet for:
whatever.test.whatever_31344.jpg

Håber i forstår hvad jeg mener...
Avatar billede ahv Nybegynder
23. marts 2003 - 21:02 #1
Explode funktion:

<?php
$string = "hej.jpg";
$nystring = explode(".jpg",$string);
echo $nystring[0];
?>

$nystring[0] vil så indeholde filnavnet
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:03 #2
den skal også tage højde for hvis det er .jpeg, .gif eller .png
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:03 #3
desuden kan jeg ikke se mig udaf hvordan jeg smider det random tal og bundstregen ind dér...
Avatar billede jakoba Nybegynder
23. marts 2003 - 21:07 #4
$randomnumber = Rand(10000,32767);
$temparr = explode( "." $file_name );
$temparr[count($temparr)-2] .=  $randomnumber;
$file_name = implode( ".", $temparr );

det der med at skelne om det er .jpg eller .gif kan du da sagtens selv hitte ud af, og så gøre noget forskelligt.
Avatar billede ahv Nybegynder
23. marts 2003 - 21:09 #5
jakoba, tager dit eksempel også højde for et filnavn som f.eks.

jakob.a.jpg ?
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:09 #6
okay, jeg tester det lige og vender tilbage..
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:10 #7
det gør det ikke, men jeg går ud fra det bare er at rette det til:

$randomnumber = Rand(10000,32767);
$temparr = explode( ".jpg" $file_name );
$temparr[count($temparr)-2] .=  $randomnumber;
$file_name = implode( ".jpg", $temparr );

???
Avatar billede jakoba Nybegynder
23. marts 2003 - 21:11 #8
Ja, den der count()-2 indsætter tallet før sidste punktum i strengen
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:11 #9
ok my bad :)
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:13 #10
jeg er dog stadig lidt i tvivl om hvor bundstregen blive indsat henne?
Avatar billede ahv Nybegynder
23. marts 2003 - 21:13 #11
Jakob mangler vist også et komma
i linien:
$temparr = explode( ".jpg" $file_name );
den skal være
$temparr = explode(".jpg", $file_name);

Et lille eksempel med Jakobs svar:

<?php

$file_name ="hej.jpg";

$randomnumber = Rand(10000,32767);
$temparr = explode(".", $file_name);
$temparr[count($temparr)-2] .=  "_".$randomnumber;
$file_name = implode( ".", $temparr );

echo $file_name;

?>

og det virker jo fint :o)
Avatar billede ahv Nybegynder
23. marts 2003 - 21:14 #12
Skal lige siges at jeg har rettet det til så der kommer en bundstreg.
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:14 #13
okay, Jakoba lav svar for points...
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:14 #14
og tak for det, ahv :)
Avatar billede angelenglen Nybegynder
23. marts 2003 - 21:23 #15
Hmm intet svar fra Jakoba?
Avatar billede jakoba Nybegynder
23. marts 2003 - 22:31 #16
jeg er bare langsom

mvh JakobA
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