Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z wyszukiwaniem - funkcja ereg()
Forum PHP.pl > Forum > Przedszkole
piotr26
witam.

Mam stworzona wyszukiwarke na pliku txt.

problem polega na tym ze w momencie wpisania na poczatku szukanej frazy takich znaków jak + ? | itp wyrzuca błąd. lub jak wpisze fdfsfd++ LUB ddff?? np C++ to tez wali błedem.

Warning: eregi() [function.eregi]: REG_BADRPT in wyszukaj.php on line 51

Proszę o sugestie jak to można obejsc exclamation.gif

ponizej zamieszczam kod php:

  1. <?php
  2. $wyszukiwarka = $_POST['wyszukiwarka'];
  3. if($wyszukiwarka==""){
  4. $wyszukiwarka="xyz";}
  5. $dane = file("dane.txt");
  6.  
  7. echo "<p style=\"padding-left:20px\"><table class=\"tabelka\" cellpadding=\"1\" cellspacing=\"0\">";
  8. echo "<tr bgcolor=#cccccc>";
  9. echo "<td bgcolor=#cccccc width=100px>NAGL1</td><td>NAGL2</td><td>NAGL3</td><td>NAGL4</td><td>NAGL5</td>";
  10. echo "</tr>";
  11. for ($index=0; $index < count($dane); $index++)
  12. {
  13. $g = split("    ", chop($dane[$index]));
  14. $count="0";
  15. if (eregi("$wyszukiwarka", $dane[$index])) {    
  16. $count++;
  17. $pole++;
  18. if ($pole==1) { $kolor = "#ffffff"; }
  19. if ($pole==2) { $kolor = "#dddddd"; $pole=0; }
  20.  
  21. echo "<tr bgcolor=$kolor>";
  22. echo  "<td align=\"left\">$g[0]</td><td><b>$g[1]</b></td><td>$g[2]</td><td>$g[3]</td><td>$g[4]</td><td>$g[5]</td>";
  23.  
  24. }
  25. }
  26. echo "</tr></table></p>";
  27. ?>


BŁĄD RZUCA DLA TEJ LINIJKI
  1. <?php
  2. if (eregi("$wyszukiwarka", $dane[$index])) {
  3. ?>



DZIEKUJE ZA SUGESTIE
ddiceman
W wyrazeniach regularnych standardu POSIX znak '+' jest zarezerwowanym symbolem. Aby był traktowany jako literał należy poprzedzić go znakiem '\', czyli przed wykonaniem
  1. <?php
  2. if (eregi("$wyszukiwarka", $dane[$index])) {
  3. ?>

nalezy dodac
  1. <?php
  2. $wyszukiwarka = str_replace('+', '+', $wyszukiwarka);
  3. ?>

i podobnie dla innych nieliteralów, np. /, ], [, ( itd...
Poza tym w takim wyszukiwaniu wystarczy Ci chyba strpos();
piotr26
dziekuje za sugestie..

wstawiłem dokładnie tak jak napisałeś.
i faktycznie nie rzuca błędem,

ale tez nie wyszukuje po tym znaku.

Chciałbym wyszkujac wszystkie wiersze gdzie wpisany jest + i nic nie wyszukuje...

Czy mozna to jakoś zmienić questionmark.gif


dziekuje za zainteresowanie tematem exclamation.gif

sorki głupie pytanie wystarczyło wstawic nieco wyzej ta funkcje i działa

dziekuje za sugestie exclamation.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.