Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Spację zamienia na +
Forum PHP.pl > Forum > Przedszkole
gsmphone
Witam,

Stworzyłem skrypt który pobiera pliki. Wszystko jest dobrze jeżeli nazwa pliku zawiera tylko jedno słowo. Sytuacja się komplikuję gdy plik ma dwu członową nazwę np "owoce morza" Zamiast spacji dodaje się automatycznie + (owoce+morza). Więc pomyślałem że zrobię skrypt który zamienia ten + na spację:

  1. <?php
  2. str_replace("+", " ", $text);
  3. ?>


ale to nie zadziałało. Pomyślałem że dam w tym kodzie dwie spację to może wtedy coś się stanie ale wtedy to tylko dodało dwa plusy.
Ma ktoś może jakiś pomysł?
blooregard
Zamieniaj spacje na %20
gsmphone
To też nie zadziałało.. zamieniło tylko na: owoce%2520morza.
Kojak
Tak działa:

  1. <?php
  2. $text = 'owoce+morza';
  3. $text = str_replace("+", " ", $text);
  4. echo $text; // Wyświetla 'owoce morza'
  5. ?>
gsmphone
No właśnie taki kod mam i nie działa. Oczywiście zadziała to gdy się nie pobiera tylko wykonuję ten skrypt. Ale gdy już dam do pobierania to cały czas wtrąca ten +
Spawnm
zobacz urldecode" title="Zobacz w manualu PHP" target="_manual
gsmphone
Tez niestety dalej są +'y
Kojak
Pokaż ten skrypt który pobiera nazwy plików.
Marcuez
W większości przypadków wyrazy są łączone lub dodawana jest '_'. Ona jagby 'imituje' spacje.
  1. <?php
  2. str_replace("+", "_", $text);
  3. ?>

owoce_morza
gsmphone
To jest takie coś:

  1. <?php
  2. $wykonaj = mysql_query ($zapytanie);
  3.  
  4.  
  5. $file = "owoce/morze/$_GET['owoc'].csv";
  6. $fp = fopen("$file", "w+");
  7.  
  8.  
  9.  
  10. while($wiersz=mysql_fetch_row ($wykonaj))
  11. {
  12. ...............
  13.  
  14. }
  15.  
  16.  
  17. header("Content-Type: text/csv");
  18. header('Content-Disposition: attachment; filename="'.urlencode($_GET['owoc']).'.csv"');
  19.  
  20. echo file_get_contents("owoce/morze/$_GET['owoc'].csv");
  21. ?>




Zrobiłem:-)

Po prostu nie potrzebne jest to .urlencode($_GET['owoc']).
erix
Cytat
Zamiast spacji dodaje się automatycznie + (owoce+morza). Więc pomyślałem że zrobię skrypt który zamienia ten + na spację:

Jest to element specyfikacji i nazwa MUSI zostać zakodowana.

Prędzej tu trzeba zmienić:
  1. <?php
  2. header('Content-Disposition: attachment; filename="'.urldecode($_GET['owoc']).'.csv"')
  3. ?>
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.