• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosta wyszukiwarka plików w php

Object Storage Arubacloud
0 głosów
534 wizyt
pytanie zadane 18 lutego 2019 w PHP przez niezalogowany

Witam.

Robie stronę na której chciałbym umieścic przeglądarke. Patrzałem trochę na te dostępne już w internecie, ale żadna nie oferowała dokładnie tego, co chce, więc postanowiłem zrobić wlasną, która tak jakby nie działa dobrze. Może ktoś chciałby mi powiedzieć co robie źle w tym kodzie? Dodam tylko, że jak już wyszukiwarka wyszuka coś to zazwyczaj jest to jedna litera i najczęśiej nie pokazuje wszystkich wyników.

<html>
<head>
<meta charset='utf-8'>
</head>
<body>
      <form action = "<?php $_PHP_SELF ?>" method = "GET">
         Wyszukaj: <input type = "text" name = "q" />
         <input type = "submit" />
      </form>
<code>
<?php
$pliki = glob('*.{htm,html}', GLOB_BRACE);
echo "<txt>przeszukano katalog.(", var_dump($pliki), ")</txt><br>";
if ($pliki != false) {
    echo "<txt>znaleziono pliki</txt><br>";
    foreach($pliki as $plik) {
    $myfile = fopen($plik, "r") or die("<txt>Unable to open file!</txt>");
    echo "<txt>przeszukano " .$plik. "</txt><br>";
    echo "<txt>uzyskano dostęp do pliku w trybie read only</txt><br>";
    if (stristr(fread($myfile,filesize($plik)), $_GET[q]) == false) {
        echo "<txt>nie znaleziono wyniku w " .$plik. "</txt><br>";
    } else {
       $myfile = fopen($plik, "r") or die("<txt>Unable to open file!</txt>");
       echo "<a href='" .$plik. "'><txt>";
       echo fread($myfile,filesize($plik));
       echo "</txt></a>";
    }
    fclose($myfile);
    echo "<txt>zamknięto plik " .$myfile. "</txt><br>";
    }
} else {
  echo "<txt>w katalogu nie znaleziono żadnych plików!</txt><br>";
}
?>
</code>
</body>
</html>

Jestem początkujący w php, co raczej można zobaczyc po kodzie, ale mam nadzieje, że odczytanie go nie będzie problemem.

komentarz 18 lutego 2019 przez niezalogowany
ps. Może jest jakiś sposób na obliczanie podobieństwa 2 wyrazów w php?

1 odpowiedź

0 głosów
odpowiedź 18 lutego 2019 przez OdsetekGlupoty Pasjonat (15,360 p.)
Witam,

W linii 20 użyłeś nieprawidłowego indeksu q. Użyj cudzysłowa lub apostrofów.

W linii 24 w instrukcji echo użyj apostrofów zamiast cudzysłowa. Nie możesz tego zrobić na odwrót.

Aby porównać podobieństwo 2 ciągów znaków, poczytaj o funkcji similar_text().

Jeśli masz jeszcze jakieś błędy, to postaraj się dokładnie opisać co nie działa.
komentarz 18 lutego 2019 przez niezalogowany
co miałeś dokładnie na myśli pisząc o tej linii 24?
komentarz 18 lutego 2019 przez niezalogowany
ciągle szuka źle, ale spróbuje dodać similar_text i wtedy zobacze jeszcze raz
komentarz 18 lutego 2019 przez OdsetekGlupoty Pasjonat (15,360 p.)

@Wojciech Radtke, Ten href powinien wyglądać tak:

echo '<a href="' . $plik . '"> ... 

 

komentarz 18 lutego 2019 przez niezalogowany
ok, dzięki. Będę musiał poprawiać, bo to nie jedyny skrypt, który tak zrobiłem );
komentarz 18 lutego 2019 przez niezalogowany
Czy mógłby mi pan jeszcze powiedzieć czy jest komenda, która z całego tekstu weźmie jeden wyraz?
komentarz 19 lutego 2019 przez OdsetekGlupoty Pasjonat (15,360 p.)

Nie ma takiej funkcji wbudowanej, ale możesz użyć funkcji explode() i podzielić cały tekst na wyrazy, a następnie z utworzonej tablicy wylosować randomowy indeks używając funkcji rand()​​​​​​. 

Podobne pytania

0 głosów
1 odpowiedź 510 wizyt
0 głosów
1 odpowiedź 319 wizyt
+31 głosów
7 odpowiedzi 1,332 wizyt
pytanie zadane 26 marca 2018 w Offtop przez shotokan Nałogowiec (39,660 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...