Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem z wyszukiwaniem - funkcja ereg()
piotr26
post 23.02.2009, 14:26:17
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.01.2007

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


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
Go to the top of the page
+Quote Post
ddiceman
post 23.02.2009, 14:38:31
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


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();
Go to the top of the page
+Quote Post
piotr26
post 23.02.2009, 15:13:49
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.01.2007

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


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
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: 7.07.2025 - 05:16