Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie w tablicy ciągu znaków, Małe i duże litery
Rafael6666
post 8.06.2007, 15:35:34
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 20.10.2006

Ostrzeżenie: (10%)
X----


A więc mam pewien problem. Jak wszyscy wiedzą funkcja eregi uwzględnia w wyszukiwaniu małe i duże litery. Co można zrobić, aby wielkość liter nie miała znaczenia?

Np.

Kod
$ala = "PinGwin";
if(eregi("pingwin", $ala) {
echo"OK";
}


To nie wyświetli OK, ponieważ jest to sprzeczne, ale jak uzyskać, żeby funkcja nie zwracała uwagi na wielkość liter?


--------------------
Kompleksowe i profesjonalne tworzenie stron www
Go to the top of the page
+Quote Post
Cezar708
post 8.06.2007, 15:40:24
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


np:
  1. <?php
  2. preg_match("/pingwin/i", "PinGwin");
  3. ?>


tu istotne jest to "/i"
Go to the top of the page
+Quote Post
JaRoPHP
post 8.06.2007, 15:44:14
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(Rafael6666 @ 8.06.2007, 14:35:34 ) *
Jak wszyscy wiedzą funkcja eregi uwzględnia w wyszukiwaniu małe i duże litery.
Ja pierwsze słyszę...

Odsyłam do dokumentacji:
- ereg" title="Zobacz w manualu PHP" target="_manual
- eregi" title="Zobacz w manualu PHP" target="_manual:
Cytat
eregi — Case insensitive regular expression match


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
Rafael6666
post 8.06.2007, 16:15:43
Post #4





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 20.10.2006

Ostrzeżenie: (10%)
X----


Sorry... Źle napisałem skrypt testowy i tak wyszło smile.gif ...

Pozdrawiam.

A wiecie może dlaczego, kiedy używa się funkcji eregi i jeżeli w szukanej frazie wpisze się znak * to wyskakuje błąd:

Warning: eregi() [function.eregi]: REG_BADRPT in /home/sylwin/domains/smiech.info/public_html/a/eregi.php on line 3

A skrypt jest taki:

Kod
<?php
$a = "Ala ma kota";
if(eregi("*", $a)) {
echo"OK";
}
?>


Dlaczego tak się dzieje i jak można tego uniknąć?


--------------------
Kompleksowe i profesjonalne tworzenie stron www
Go to the top of the page
+Quote Post
Void
post 8.06.2007, 16:21:39
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Cytat(Rafael6666 @ 8.06.2007, 17:15:43 ) *
A wiecie może dlaczego, kiedy używa się funkcji eregi i jeżeli w szukanej frazie wpisze się znak * to wyskakuje błąd

Ponieważ znak * jest w wyrażeniach regularnych tzw. kwantyfikatorem oznaczającym "0 lub więcej wystąpień danego znaku/ciągu znaków".

Cytat(Rafael6666 @ 8.06.2007, 17:15:43 ) *
jak można tego uniknąć?

wystarczy wstawić znak \ przed *.
  1. <?php
  2. if(eregi("*", $a))
  3. ?>


Ten post edytował Void 8.06.2007, 16:22:05
Go to the top of the page
+Quote Post
Rafael6666
post 8.06.2007, 19:00:02
Post #6





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 20.10.2006

Ostrzeżenie: (10%)
X----


Mam jeszcze jeden problem. To jest skrypt:

Kod
<?php
$ala = "pingwin";
$str = "PiNgWiN jest THE BEST";
if(eregi($ala, $str)) {
$str = eregi_replace($ala, "<b>$ala</b>", $str);
echo $str;
}
?>


Wyświetli się: pingwin jest THE BEST

Co zrobić, aby wyświetliło się PiNgWiN jest THE BEST nie zmieniając zmiennej $ala?


--------------------
Kompleksowe i profesjonalne tworzenie stron www
Go to the top of the page
+Quote Post
Flow my tears
post 8.06.2007, 20:01:22
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 23.09.2006

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


  1. <?php
  2. $ala = "(pingwin)";
  3. $str = "PiNgWiN jest THE BEST";
  4. if( eregi( $ala, $str ) )
  5. {
  6. $str = eregi_replace( $ala, '<b>1</b>', $str );
  7. echo $str;
  8. }
  9. ?>
Go to the top of the page
+Quote Post
webdice
post 8.06.2007, 20:02:29
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. $ala = "pingwin";
  3. $str = "PiNgWiN jest THE BEST";
  4. if(eregi($ala, $str)) {
  5. $str = preg_replace('#('.$ala.')#i', '<b>1</b>', $str);
  6. echo $str;
  7. }
  8. ?>


~Rafael6666 na przyszłość nie życze sobie takich PW.

Ten post edytował webdicepl 8.06.2007, 20:02:44
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: 16.07.2025 - 15:39