Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]problem z wyszukiwaniem - funkcja ereg()
piotr26
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
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ć (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


dziekuje za zainteresowanie tematem (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)

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

dziekuje za sugestie (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 13:10