Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyswietlanie pliku z spacja w nazwie
Forum PHP.pl > Forum > PHP
bzz
witm
nie dawno zaczolem uczyc sie php i napisalem maly scrypt do wyswietlania zawartosci katalogow

  1. <?
  2. include &#092;"cfg.php\";
  3. echo&#092;"<body >\";
  4. function getfilesize($bytes) {
  5.  if ($bytes >= 1099511627776) {
  6.  $return = round($bytes / 1024 / 1024 / 1024 / 1024, 2);
  7.  $suffix = &#092;"TB\";
  8.  } elseif ($bytes >= 1073741824) {
  9.  $return = round($bytes / 1024 / 1024 / 1024, 2);
  10.  $suffix = &#092;"GB\";
  11.  } elseif ($bytes >= 1048576) {
  12.  $return = round($bytes / 1024 / 1024, 2);
  13.  $suffix = &#092;"MB\";
  14.  } elseif ($bytes >= 1024) {
  15.  $return = round($bytes / 1024, 2);
  16.  $suffix = &#092;"KB\";
  17.  } else {
  18.  $return = $bytes;
  19.  $suffix = &#092;"Byte\";
  20.  }
  21.  if ($return == 1) {
  22.  $return .= &#092;" \" . $suffix;
  23.  } else {
  24.  $return .= &#092;" \" . $suffix . \"s\";
  25.  }
  26.  return $return;
  27. }
  28.  
  29.  
  30. if ($_GET[&#092;"path\"]==\"\") {
  31. $path = &#092;"./pliki\";
  32. } else {
  33. $path=$_GET[&#092;"path\"];
  34. }
  35.  
  36. echo &#092;"<center><table width=80%><tr><td></td></tr>\";
  37.  
  38. echo &#092;"<tr><th></th><th align=left>Nazwa</th><th align=right>Wielkosc</th><th align=right>Data</th></tr>\";
  39. if ($handle = opendir($path)) {
  40. while (false !== ($file = readdir($handle))) { 
  41. if ($file != &#092;".\" && $file != \"..\") { 
  42. if (is_dir(&#092;"$path/$file\")==true){
  43.  
  44. $czas = date(&#092;"d-m-Y\",filectime(\"$path/$file\"));
  45.  
  46.  
  47.  echo &#092;"<tr><td><img src=./gfx/folder.ico /></td><td><a href=files.php?path=$path/$file>$file</a></td><td align=right></td><td align=right> $czas</td> </tr>\";
  48.  
  49. }else{
  50.  $wielkosc = getfilesize(filesize(&#092;"$path/$file\"));
  51. $czas = date(&#092;"d-m-Y\",filectime(\"$path/$file\"));
  52.  echo &#092;"<tr><td><img src=./gfx/file.ico /></td><td><a href=$path/$file>$file</a></td><td align=right>$wielkosc</td><td align=right> $czas</td> </tr>\";
  53. }
  54.  
  55. } 
  56. }
  57. closedir($handle); 
  58. }
  59. echo &#092;"</table></center>\";
  60.  
  61. ?>


i mam taki problem
jesli plik zawiera spacje w nazwie to do zmiennej zapisana zostaje nie cala nazwa pliku
tzn do pierwszej spacji

mozecie mi podpowiedziec jak zrobic by wyswietlalo nazwy ze spacjami ?
szukalem na forum ale sie nie doszukalem sad.gif
crash
U mnie readdir" title="Zobacz w manualu PHP" target="_manual wyświetla poprawnie nazwy plików ze spacjami, jeśli u Ciebie np. został poprawnie odczytany czas utworzenia to znaczy, że nazwy też powinny zostać poprawnie odczytane.
bzz
no tak
  1. <?php
  2. echo $file 
  3. ?>
wyswietla mi cala nazwe ale jak wstawiam to do
  1. <?php
  2. echo &#092;"<a href=files.php?path=$path/$file>$file</a>\"
  3. ?>
to dziala tylko do spacji
tzn jak katalog ma nazwe"bzz bzz" to adres linku jest "http://jakasdomena.cos/pliki/bzz" zamiast "http://jakasdomena.cos/pliki/bzz bzz"
jakis pomysl na rozwiazanie tego ?
crash
  1. <?php
  2. echo '<a href=\"files.php?path='.urlencode($path.'/'.$file).&#092;">'.$file.'</a>';
  3. ?>
bzz
THX dzila smile.gif
ale chyba lepiej dziala jak zrobie to tak

  1. <?php
  2. $url = str_replace(' ','%20',$file);
  3. <a href=files.php?path=$url>$file</a>
  4. ?>


pozdrawiam
dr_bonzo
Mam problem z otwieraniem URLi (file_get_contents()) ze spacjami, &, ?, itd.

Nie otwiera:
- urla przekazanego bezposrednio:
http://127.0.0.1/services/rss/rss spacje&sd%sd.xml?asd=ad5

- po zakodowanie [raw]urlencode:
http%3A%2F%2F127.0.0.1%2Fservices%2Frss%2Frss%20spacje%26sd%25sd.xml%3Fasd%3Dad5
http%3A%2F%2F127.0.0.1%2Fservices%2Frss%2Frss+spacje%26sd%25sd.xml%3Fasd%3Dad5

Dopiero po zamianie niektorych znakow (%XX) na ich odpowieniki
  1. <?php
  2. str_replace( array( '%3A', '%2F', '%3F', '%3D' ), array( ':', '/', '?', '&' ), $sRSS_url );
  3. ?>

potrafi otworzyc URLa.

Pytanie brzmi:
Ktore znaki musza byc zakodowane, a ktore nie?
Lub jak otworzyc takiego urla w inny sposob?
plewa
Gdy skrypt napotka spację zamienia spację na ciąg '%20".
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.