• 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

VPS Starter Arubacloud
0 głosów
531 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ź 494 wizyt
0 głosów
1 odpowiedź 281 wizyt
+31 głosów
7 odpowiedzi 1,309 wizyt
pytanie zadane 26 marca 2018 w Offtop przez shotokan Nałogowiec (39,660 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...