Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Wypisanie ostatnio dodanych plikow do katalogu na serverze, Jak sie do tego zabrac?
uglukha
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


Witam wszystkich serdecznie,
to moj pierwszy post tutaj, wiec moze pare slow wstepu smile.gif
Glownie znam sie na grafice i css i html, a php po prostu uzywam albo skryptow, ktore napisalem dawno temu, albo jakis przerobionych z netu, zdecydowanie nie czuje sie programista i to moja najslabsza strona.

Niestety przypadlo mi napisanie paru linijek kodu, i nie wiem jak sie do tego zabrac.



Zadanie jest takie, ze na serwerze firmowym mamy katalog www.adresstronyfirmy.com/projekt123/teksty/
Ludzie wrzucaja tam pliki .doc na wszelkie mozliwe sposoby, przez klienta ftp/panel administracyjny/formularz na stronie itd. Wiele osob pracujacych przy danym projekcie ma do tego dostep.

I musze teraz napisac prosty skrypt, ktory:
  1. Sprawdzi daty dodania wszystkich plikow .doc w danym katalogu
  2. Przypisze nazwy ostatnio dodanych 10 plikow do zmiennych, czyli np.
    1. <?php
    2. $plik1 = zenek.doc;
    3. $plik2 = umowa.doc;
    4. ?>

    itd
  3. Utworzy linki na docelowej stronie:
    1. Ostatnio dodane/zmieniane pliki:
    2. <A HREF="www.adresstronyfirmy.com/projekt123/teksty/zenek.doc">zenek</A>
    3. <A HREF="www.adresstronyfirmy.com/projekt123/teksty/umowa.doc">umowa</A>

    itd.

O ile z punktem 3 sobie poradze (chociaz nie wiem jak usunac ".doc" w nazwie odnosnika ;/ ) to punkty 1 i 2 to dla mnie czarna magia. Przegladajac php.net trafilem na file_exists, ale to sprawdza jeden konkretny plik. Da sie to jakos przeroibc zeby sprawdzalo pliki o danym rozszerzeniu?
Bede wdzieczny za wszelka pomoc i nakierowanie mnie na odpowiednie funkcje czy tez slowa kluczowe, ktorych szukac w google, bo gdy szukam operacji na plikach, to wyskakuja mi same tutoriale dla poczatkujacych o tym jakto wczytac i zapisac plik.

Z gory dziekuje za pomoc!
Pozdrawiam!


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
xbigos
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


Polecam lekturę

http://pl.php.net/manual/pl/ref.filesystem.php

a w szczególności

fileatime i filemtime



.doc usuwasz przy pomocy explode. file_exist sprawdza czy takowy plik istnieje więc przyjmijmy narazie, że Ci się nie przyda. Potrzebny Ci będzie później gdy trochę rozwiniesz swój skrypt.

Ten post edytował xbigos 5.05.2008, 15:49:40


--------------------
Go to the top of the page
+Quote Post
uglukha
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


ok, dzieki xbigos za wskazowke, troche poszperalem, jako ze ciezko mi takie rzeczy ida, wiec najpierw teoretycznie:

za pomoca jakiejs petli z glob

  1. <?php
  2. foreach (glob("*.doc")
  3. ?>


znajde wszystkie pliki .doc, przypisze je do jakis zmiennych, a pozniej przez

filemtime

odczytam ich daty modyfikacji, i chyba bede musial to zapisac do array, zeby moc skorzystac z

sort

do ulozenia wg daty modyfikacji.

dobrze rozumuje?

Ten post edytował uglukha 5.05.2008, 17:00:08


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




filemtime" title="Zobacz w manualu PHP" target="_manual jako klucz w tablicy, wartości - nazwy i potem asort" title="Zobacz w manualu PHP" target="_manual. ;]


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
uglukha
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


dzieki erix

eh,strasznie to trudne dla mnie, powiedzcie czy dobrze kombinuje:

  1. <?php
  2. $plikidoc = array (
  3.  foreach (glob("*.doc") as $filename) {
  4. "pliki" => array("$filename") ;)
  5. );
  6. asort ($plikidoc);
  7. foreach ($plikidoc as filemtime($filename) => $val) {
  8. echo "$filename = $val\n";
  9. }
  10. ?>


jesli nie namieszalem, to najpierw znajduje to pliki .doc, wpisuje do tablicy, pozniej sortuje wg daty modyfikacji i wypisuje wszystkie pokolei

ide spac, jutro zerkne w robocie czy to dziala , ale pewnie nie ;P

Ten post edytował uglukha 6.05.2008, 23:56:08


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post
artega
post
Post #6





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

Ostrzeżenie: (0%)
-----


Ten kod powinien pomóc - skrypt wyszukuje pliki *.doc, sortuje według daty ostatniej modyfikacji i wyświetla od najnowszego.
  1. <?php
  2.  
  3. $pliki = glob("*.doc");
  4.  
  5. $czas_pliku = array();
  6.  
  7. foreach ($pliki as $plik)
  8. {
  9. $czas_pliku[] = filemtime($plik);
  10. }
  11.  
  12. arsort($czas_pliku);
  13.  
  14. while (list($klucz) = each($czas_pliku))
  15. {
  16. echo $pliki[$klucz]."<br>";
  17. }
  18.  
  19. ?>
Go to the top of the page
+Quote Post
uglukha
post
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


wielkie dzieki artega! poszlo "pomogl"

teraz widze ile nasadzilem bledow w moim nedznym kodzie, Twoj ma sens, moj teraz widze ze nie specjalnie winksmiley.jpg

mam nadzieje ze z reszta juz sobie poradze, jeszcze raz dzieki, pewnie pare dni by mi zajelo napisanie tego heh biggrin.gif


EDIT:
Nie wiem jak, ale udalo mi sie napisac to biggrin.gif
Wrzucam caly skrypt, moze sie komus przyda tongue.gif
Dzieki wszystkim za pomoc.

P.S. aha z wyswietlania ostatnich 10 na razie rezygnuje, ma sie wyswietlac wszystko.

  1. <?php
  2.  
  3. $pliki = glob("*.doc");
  4.  
  5. $czas_pliku = array();
  6.  
  7. foreach ($pliki as $plik)
  8. {
  9. $czas_pliku[] = filemtime($plik);
  10. }
  11.  
  12. arsort($czas_pliku);
  13.  
  14. while (list($klucz) = each($czas_pliku))
  15. {
  16.  
  17. echo '<a href="'.$pliki[$klucz].'">'.substr($pliki[$klucz],0,strlen($pliki[$klucz])-4).'</a> ('.date ("d.m.Y, godz. H:i", filemtime($pliki[$klucz])).')<br>'."\n";
  18.  
  19. }
  20.  
  21. ?>



daje to taki wynik:
  1. <a href="zenek.doc">zenek</a> (06.05.2008, godz. 09:59)<br>
  2. <a href="umowa.doc">umowa</a> (05.05.2008, godz. 16:48)<br>


Ten post edytował uglukha 7.05.2008, 10:06:25


--------------------
Death and Decay >.<
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:08