Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie w tablicy ciągu znaków
Forum PHP.pl > Forum > PHP
Rafael6666
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?
Cezar708
np:
  1. <?php
  2. preg_match("/pingwin/i", "PinGwin");
  3. ?>


tu istotne jest to "/i"
JaRoPHP
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
Rafael6666
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ąć?
Void
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. ?>
Rafael6666
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?
Flow my tears
  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. ?>
webdice
  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.
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.