str_replace

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
0

Witam,
Zalozmy ze mam w bazie slowo 'Banan'. Teraz wpisujac w pole txt fraze 'banan na drzewie' przeszukuje mi rekordy. Chodzi mi o sama zamiane na inny kolor slowa 'banan' z tym ze w bazie kest z duzej litery a ja wpisuje z malej. Jak to wkryc i zamienic ? Samo str_replace zamieni ale musialbym podac z duzej litery. Nie chce tez zamieniac wszystkich liter z pola txt na male i z bazy na male bo w wyswietleniu beda tez male

Pipes
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 459
0

Zasadniczo: użyj str_ireplace. I oznacza - ignore case czyli nie zwracaj uwagi na małe / wielkie litery.

Kopiuj
echo str_ireplace("Banan", "Gruszka", "banan na drzewie");

// Gruszka na drzewie
TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
0

Spróbuj uzyć funkcji z rodziny regexp tam masz ignorowanie rozmiaru liter (przełącznik i), np.:

https://www.php.net/manual/en/function.preg-replace.php

coś w stylu:

Kopiuj
$txt = preg_replace( '/banan/ims', '<span style="color:red">banan</span>', $txt );

możesz także użyć back references: https://www.php.net/manual/en/regexp.reference.back-references.php do przechwycenia tego co zostało podmienione aby podmiana była z Banan na Banan, a nie z Banan na banan.

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
0

Dzieki za odpowiedzi ale slowo Banan zamieniane jest na małą litere. Docelowo ma byc wartosc zmiennej w postaci nienaruszonej czyli banan ma byc z duzej litery.

Kopiuj
<?php

$str = 'Banan na drzewie';
$input = 'banan'; // to co wpisuje w input

print preg_replace( "/$input/ims", "<span style=\"color:red\">$input</span>", $str );

?>

<?php

$str = 'Banan na drzewie';
$input = 'banan';  // to co wpisuje w input

print str_ireplace( $input, "<span style=\"color:red\">$input</span>", $str );

?>

Wynikiem jest: 'banan na drzewie' a powinno byc: 'Banan na drzewie'

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
1

Pisałem Ci o backreferences ale chyba nie chciało Ci się za tym zapoznać, teraz to wszystko chcecie na tacy, no dobra niech będzie:

Kopiuj
$str = 'Banan na drzewie';
$input = 'banan'; // to co wpisuje w input

print preg_replace( '/('.$input.')/ims', '<span style="color:red">\1</span>', $str );

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.