Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwarka plików w katalogu
AuronDiel
post 6.10.2012, 09:13:01
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


Witam wszystkich! smile.gif
Napisałem wyszukiwarke, która jest niestety dojść niedokładna. Załużmy, że mamy 3 pliki w katalogu o nazwie ,,Pies.php", ,,Pies i Kot.php", ,,PiesiKot.php".
Jeśli wpiszemy w mojej wyszukiwarce słowo ,,Pies" to wypisze nam tylko plik ,,Pies.php" a chce właśnie by wypisał wszystkie pliki które zawieraja słowo kluczowe.
Pisze tutaj ponieważ kompletnie nie mam pomysłu jak się za to zabrać. Mam nadzieje, że wszystko co napisałem jest w miare zrozumiałe i jasne. Dziękuje wszystkim chętnym za pomoc. Po rozwiązaniu problemu wysyłam piwa.
W pierwszym pliku (wyszukaj.php) jest tam formularza z metoda POST.

Plik wyszukajj.php
  1. <?php
  2. $temat = $_POST['temat'];
  3. $Katalog = 'sc/j.polski/' . "$temat" . '.php';
  4. $nazwy = glob("$Katalog");
  5. $nazwyc = count($nazwy);
  6. for ($i = 0; $i < $nazwyc; $i++) {
  7. $pathinfo = pathinfo($Katalog.'/'.$temat.'.php');
  8.  
  9. '<a href="'.$Katalog.'"><font color="#c4c4c4" size="5">'.$pathinfo['filename'].'</font></a><br /><hr size="1" color="gray">';
  10. }
  11. ?>


Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
sowiq
post 6.10.2012, 09:55:34
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Według Twojego kodu, po wpisaniu "Pies" wyszukujesz plików, które pasują do "sc/j.polski/Pies.php". Zrób tak, żeby wyszukiwało "sc/j.polski/*Pies*.php"

PS. Filtruj dane przychodzące w $_POST, zamiast używać ich od razu.
Go to the top of the page
+Quote Post
AuronDiel
post 6.10.2012, 10:02:33
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


dojść ciężkie zadanie... no spróbuje smile.gif
Go to the top of the page
+Quote Post
sowiq
post 6.10.2012, 10:07:13
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Ciężkim zadaniem jest zamienić to:
Kod
'sc/j.polski/' . "$temat" . '.php';

Na to? (usunąłem również niepotrzebne cudzysłowy)
Kod
'sc/j.polski/*' . $temat . '*.php';
Go to the top of the page
+Quote Post
AuronDiel
post 6.10.2012, 10:48:30
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. <?php
  2. $temat = $_POST['temat'];
  3. $Katalog = 'sc/j.polski/*' . $temat . '*.php';
  4. $nazwy = glob("$Katalog");
  5. $nazwyc = count($nazwy);
  6. for ($i = 0; $i < $nazwyc; $i++) {
  7. $pathinfo = pathinfo($Katalog.'/*' . $temat . '*.php');
  8.  
  9. '<a href="'.$Katalog.'"><font color="#c4c4c4" size="5">'.$pathinfo['filename'].'</font></a><br /><hr size="1" color="gray">';
  10. }
  11.  
  12.  
  13.  
  14. ?>


Zamiast wypisać ,,Pies.php", ,,Pies i Kot.php", ,,PiesiKot.php"
wypisuje 3 razy *Pies* + a href nie działa ponieważ nie ma takiego pliku jak ,,*Pies*.php".

Ten post edytował AuronDiel 6.10.2012, 14:27:34
Go to the top of the page
+Quote Post
sowiq
post 6.10.2012, 15:09:28
Post #6





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


@AuronDiel, przeanalizuj co robi Twój program. Po pierwsze (4. linijka) szuka plików i zapisuje ich listę do tablicy w zmiennej $nazwy. Dalej (linia 5.) liczysz ile masz plików. Ale w pętli wyświetlasz za każdym razem to samo. Powinieneś iterować po tablicy $nazwy i używać/wyświetlać poszczególne jej elementy.

  1. foreach($nazwy as $file){
  2. echo $file;
  3. }
Go to the top of the page
+Quote Post
AuronDiel
post 6.10.2012, 16:05:37
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. <?php
  2. $temat = $_POST['temat'];
  3. $Katalog = 'sc/j.polski/' . "$temat" . '.php';
  4. $nazwy = glob("$Katalog");
  5. $nazwyc = count($nazwy);
  6. foreach($nazwy as $file){
  7.  
  8. $pathinfo = pathinfo($Katalog.'/'.$temat.'.php');
  9. echo $file;
  10.  
  11. }
  12. ?>


Poprawiłem i dalej nic. sad.gif
Go to the top of the page
+Quote Post
sowiq
post 6.10.2012, 16:14:59
Post #8





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Zgubiłeś gdzieś po drodze gwiazdki, które dodałeś wcześniej.
Go to the top of the page
+Quote Post
AuronDiel
post 6.10.2012, 16:52:25
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. <?php
  2. $temat = $_POST['temat'];
  3. $Katalog = 'sc/j.polski/*' . $temat . '*.php';
  4. $nazwy = glob("$Katalog");
  5. $nazwyc = count($nazwy);
  6. foreach($nazwy as $file){
  7. $pathinfo = pathinfo($Katalog.'/*' . $temat . '*.php');
  8. echo '<a href="'.$file.'"><font color="#c4c4c4" size="5">'.$pathinfo['filename'].'</font></a><br /><hr size="1" color="gray">';
  9.  
  10. }
  11.  
  12.  
  13.  
  14. ?>

Odnośniki działają, do każdego pliku. Niestety dalej mi wszystkie wypisuje je pod nazwą ,,*Pies*". sad.gif
Go to the top of the page
+Quote Post
abort
post 6.10.2012, 18:26:50
Post #10





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Bo wpisałeś "*Pies*" w okienko do wyszukania i w pętli ciągle się do tego odwołujesz. Przeanalizuj na spokojnie.
Go to the top of the page
+Quote Post
sowiq
post 6.10.2012, 19:01:54
Post #11





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


@AuronDiel, ale co tak się uparłeś na to pathinfo? Sprawiasz wrażenie, jakbyś sklejał te linijki kodu na ślepo...

  1. $temat = $_POST['temat'];
  2.  
  3. // koniecznie przefiltrowanie zmiennej $temat w tym miejscu!
  4.  
  5. $path = 'sc/j.polski/*' . $temat . '*.php';
  6. $nazwy = glob($path);
  7.  
  8. foreach($nazwy as $file){
  9. echo $file;
  10. }


To powinno zadziałać, a resztę dorobisz sobie sam.
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 Wersja Lo-Fi Aktualny czas: 20.06.2025 - 20:25