Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyswietlanie zawartosci katalogu &&
Forum PHP.pl > Forum > Przedszkole
tofik1778983
witam mam taki mały problem.. googluje i googluje forum tez przejrzałem i nie moge znalesc rozwiazania... a mianowicie mamk taki kod odpowiada on za wczytanie zawartosci katalogu uploadx dzie sa uploadowane pliczki za pomoca innego skryptu php no i problem polega na tym ze gdy załaduje plik o jakiejkolwiek nazwie ciągłej np xxxsdfase.xxx xasdfx_xxx.xxx itd to wyswietla nie jest ok natomiast gdy nazwaq pliku jet przerwana spacją to juz nie moze odnalesc pliku i przy kliknieciu na wygenerowany link wyskakuje mi monit ze nie ma takiego pliku... jak zrobic by dobrze linkował nazwy plików ze spacja... questionmark.gif ?

oto kod:
---------------------------------------------------------

<style type="text/css">

</style><div align="center"></div>

<?

$sciezka = "uploadx/";

$lista=array();

$katalog = opendir($sciezka);

while ($plik = strtolower(readdir($katalog))) {

if (($plik<>".")&&($plik<>"..")) if(!is_dir($sciezka.$plik))

$lista[]=$plik;

}

closedir($katalog);

sort($lista);

for ($i=0;$i<count($lista);$i++) {

echo " <br> <a href=\"uploadx/$lista[$i]\">$lista[$i]</a>";

}

?>

----------------------------------------------------------
pytanie 2


jak zrobic aby kod po wczytaniu i sprawdzeniu zawartosci katalogu "uploadx" rozpoznał i odróznił pliki od folderów, przy folderach dał ikone folderu przy plikach pliku.. no i uszeregował je aby foldery były przed plikami.. a takze na poczatku aby był link umozliwiajacy powrót do folderu o jeden poziom wyzej gdy wejdziemy do jakiegos katalogu podrzednego... wyswietlanie rozmiaru pliku i daty takze mile widziane...

chodzi mi o takie cos jak na tym przykładzie:




dodam ze na php niebardzo sie znam i tak dobrze ze to zrobic mi sie udało...
wczensiej miałem serwer z automatycznymi indexami i uploaderem a teraz lipa nic na nim nie ma i trzeba wszystko zrobic samemu.. uploadera juz napisałem i dziala ok no ale to wyswietlanie juz mnie wkurza prosze o jakies przykłady albo rozwiazanie moego problemu...
dadexix
spacje i polskie znaki są nie zalecane w nazwach.... w pliku uploadującym daj aby zmieniało spacje na _ i po kłopocie...


PS. Dodaj tagi i znaczniki
SirZooro
Spacje i inne znaki specjalne trzeba odpowiednio zakodować - do tego służy funkcja urlencode. Pliki i katalogi można natomiast rozróżnić za pomocą is_file i is_dir.
tofik1778983
hmmm no ok a moze jakis przykłady bo jak dla mnie to kolejne kilka dni siedzienia i pisania krok po kroku wedłóg manuala..... i patrzenie na coraz to fajniejsze błedy

a za taki sorka ale u mnie cos nie dziala i dlatego wkleiłem kod normalnie..

jesli chodzi o zmiane nazwy znaku na inny to oto chodzi?? aby "spacja" zamieniła sie na " _ " jesli tak to gdize i jak to wstawic do mojego kodu bo nie wiem jak sie za to zabrac...

<?php
function escape($url)
{
return str_replace("%20", "_", urlencode($url));
}
?>


albo moze by sie dało dorzycic funkcje do pliku uploadera zeby przy ładowaniu pliku na serwer zmienił odrazu jego nazwe..questionmark.gif?
dadexix
Cytat
albo moze by sie dało dorzycic funkcje do pliku uploadera zeby przy ładowaniu pliku na serwer zmienił odrazu jego nazwe..questionmark.gif?
a gdzie Ty chcesz to dawać? jasne że do skryptu ładującego...

  1. <?php
  2. function escape($url)
  3. {
  4. return str_replace("%20", "_", urlencode($url));
  5. }
  6. ?>


po pierwsze jeśli dajesz urlencode() to nie musisz zmieniać spacji bo urlencode sam zmieni je na +... dla estetyki mozesz zrobić:
  1. <?php
  2. return str_replace("+", "_", urlencode($url));
  3. ?>


a jak byś się uparł na tę zmiene spacj w str_replace daj tak:
  1. <?php
  2. return str_replace(" ", "_", urlencode($url));
  3. ?>
bo Ty zmieniałeś ciąg znaków "%20" na "_" a spacji tu nawet nie ma(PHP tak nie działa - %20 nie jest tym samym co spacja...)
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.