Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Szukajka plików
dk1342
post
Post #1





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


Witam, mam pytanie czy jest możliwość zrobienia szukajki plików w danym katalogu (potrzebne do uploadu)
bez bazy mysql i bez plików tekstowych ?

Jak tak to czekam na propozycje

a jak nie to jak to zrobić na plikach tekstowych ?

Ten post edytował dk1342 14.01.2009, 14:08:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




wczytujesz po kolei wszystkie pliki z katalogu i sprawdzasz, ktore pasuja do twego wzorca.

Mozesz tez uzyc glob(), ktore wspomaga podanie wzorca.
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Można np za pomoca funkcji http://pl.php.net/glob
albo zwyklymi funkcjami z rodziny http://pl.php.net/manual/pl/ref.dir.php
Go to the top of the page
+Quote Post
dk1342
post
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


ok funkcje wyświetlania wszystkich plików z folderu już wcześniej miałem napisaną

nie znam tej funkcji glob musze zobaczyć w manualu ale tam niestety wszystko po angielsku ale może coś zrozumie

ee nie zrozumiałem dalibyście jakieś nakierowanie do tej funkcji ?

nie prosze o gotowca chyba że ktoś będzie taki miły, proszę o coś jak wyjaśnienie tej funkcji
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a czego tu nie rozumiec?
  1. <?php
  2. foreach (glob("*szukanafraza*") as $filename) {
  3.    echo "$filename size " . filesize($filename) . "\n";
  4. }
  5. ?>
Go to the top of the page
+Quote Post
koreja
post
Post #6





Grupa: Zarejestrowani
Postów: 120
Pomógł: 22
Dołączył: 15.07.2008
Skąd: Raniżów/Rzeszów

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


Posłużę się przykładem z manuala:
  1. <?php
  2. foreach (glob("*.txt") as $filename) {
  3.    echo "$filename size " . filesize($filename) . "\n";
  4. }
  5. ?>


Jak widzisz, funkcja glob wyszukuje plików o podanym rozszerzeniu, a następnie zapisuje nazwę do zmiennej
  1. <?php
  2. $filename
  3. ?>
potem
  1. <?php
  2. echo $filename;
  3. ?>
wyświetla to na ekranie. Wystarczy, że przerobisz ten skrypt delikatnie i uzyskasz to, czego szukasz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował koreja 14.01.2009, 14:51:18
Go to the top of the page
+Quote Post
dk1342
post
Post #7





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


dzięki działa udało mi się



tylko mam problem gdy szukajka nie znajdzie czyli gdy plik nie istnieje to wywala warninga

Warning: Invalid argument supplied for foreach() in /home/accounts_d/dk1342/public_html/demo/dupa.php on line 5

więc zrobiłem takie coś:
Kod
if (file_exists($filename)
{
$szukaj = $_POST['szukaj'];
foreach (glob("files/*".$szukaj."*") as $filename)
{
echo substr($filename, 6)."<br />";
}
} else {
echo "Nie znaleziono";
}


teraz nie ma warninga ale caly czas pisze

"Nie znaleziono"

choć taki plik istnieje
Go to the top of the page
+Quote Post
erix
post
Post #8





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




A wiesz, że kod wykonuje się od góry do dołu, a nie na odwrót?
Go to the top of the page
+Quote Post
bartg
post
Post #9





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


  1. <?php
  2. $szukaj = $_POST['szukaj'];
  3. $aFiles = glob("files/*".$szukaj."*");
  4. foreach ((array)$aFiles as $filename)
  5. {
  6. echo substr($filename, 6)."<br />";
  7. }
  8. if(count($aFiles)==0)
  9. {
  10. echo "Nie znaleziono";
  11. }
  12. ?>
Go to the top of the page
+Quote Post
dk1342
post
Post #10





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


erix tak wiem, ale jakoś nie wiem jak to zrobić

bartg

dzięki ładnie działa tylko jak plik nie istnieje to jest biała strona zamiast pisać "nie znaleziono" a gdy plik istnieje ładnie wyświetla



więc dlaczego nie pokazuje tego komunikatu ? wg. jest to zwykły if i nie widze w nim błędu więc nie wiem
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $szukaj = $_POST['szukaj'];
  3. $aFiles = glob("files/*".$szukaj."*");
  4. if ($aFiles){
  5. foreach ($aFiles as $filename)
  6. {
  7. echo substr($filename, 6)."<br />";
  8. }
  9. }
  10. else
  11. {
  12. echo "Nie znaleziono";
  13. }
  14. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 01:14