Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]str_replace
Forum PHP.pl > Forum > Przedszkole
szmerak
Mam taki kodzik i chcę aby pliki które zostaly wgrywane zamiast spacji miały znak _
proszę o pomoc pilnie tego potrzebuje
Wiem że mam zrobić str_replace ale na żadnej zmiennej nie działa.

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  5. </head>
  6. <body bgcolor="#FFFFFF" text="#000000">
  7. <form name="Upload" method="post" action="upload.php" enctype="multipart/form-data" id="Form1">
  8. <input type="file" id="FileUpload1" size="25" name="userfile[]"><br>
  9. <input type="image" name="Upload" id="ImageButton1" src="images/buttonupload.jpg"</form>
  10. </div>
  11. </body>
  12. </html>
  13. <?php
  14. $uploaddir = './public/';
  15. $allowed = array('jpg','jpeg','gif','pdf','exe');
  16. $max_size = 1100024 * 1100024;
  17. $blad = "Zjebalo sie cos";
  18. # No edits beyond this line
  19. if (isset($_FILES['userfile'])) {
  20. foreach ($_FILES['userfile']['error'] as $i => $error) {
  21. if ($error == 0 && $_FILES['userfile']['size'][$i] <= $max_size) {
  22.  
  23. $file_ext = pathinfo($_FILES['userfile']['name'][$i],PATHINFO_EXTENSION);
  24. $file_name = basename($_FILES['userfile']['name'][$i],'.'.$file_ext);
  25. if (in_array(strtolower($file_ext),$allowed)) {
  26. $new_base = $_FILES['userfile']['name'][$i];
  27.  
  28. $t = 1;
  29. while (file_exists($uploaddir.$new_base)) {
  30. $new_base = $file_name.'['.$t.'].'.$file_ext;
  31. $t++;
  32. }
  33. if (move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$uploaddir.$new_base)) {
  34. chmod($uploaddir.$new_base, 0644);
  35. echo 'Successful upload: '.$_FILES['userfile']['name'][$i].'<br>'."\n";
  36. }
  37.  
  38. }
  39.  
  40. }
  41.  
  42. }
  43. }
  44. ?></div>
  45. </body>
  46. </html>
nospor
Cytat
Wiem że mam zrobić str_replace ale na żadnej zmiennej nie działa.
widac źle użyłeś. pokaz jak to robiłes
szmerak
  1. $file_name = str_replace(" ", "_", $file_name);

Wiem że banalne ale 3 lata nie pisałem skryptów i nic już nie pamiętam
nospor
przeciez $newbase pobierasz bezposrednio z $_FILES
$new_base = $_FILES['userfile']['name'][$i];
wiec podmienianie czegos w $filename jest bezsensu bo i tak z $filename nie korzystasz przy tworzeniu nazwy pliku
szmerak
To mógł byś napisać do jakiej zmiennej zastosować str_replace? opóźnia mi to tylko prace. Dalej próbowałem z $_FILES i dalej nie wiem.
darko
Cytat
opóźnia mi to tylko prace


lol

Cytat
To mógł byś napisać


ale tupet, postawa roszczeniowa, przecież wszystko jest tutaj

A masz:
  1. $new_base = str_replace(" ","_",$new_base);
szmerak
dalej nie wiem chodze po necie szukam. i nic ;/ dziwne a takie proste.
Blame
OMG
Nospor ładnie ci wytłumaczył, że pracujesz na dwóch różnych zmiennych, czyli zamieniasz spacje nie w tej co trzeba. Zobacz sobie, którą podajesz przy move_uploaded_file.
PS. O nie nie nie, gotowca nie dam ;]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.