Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: eregi_replace - podkreslenie słowa
Forum PHP.pl > Forum > PHP
casperek
Generalnie chce zrobic aby podkreslalo sie slowo w tekscie ktore zostanie zadane(wybrane w formularzu)

Dane:

Kod
$zmienna='Jakiś FajoSki TeKscik';

print($zmienna);



$to='Fajoski';

$zmienna = eregi_replace($to,"<u>".$to."</u>",$zmienna);

print($zmienna);


Wszystko bylo by ok ale slowo podkreslone bedzie takie samo jak $to czyli slowo zadane (Fajoski) , a ja chce aby te slowo bylo (FajoSki)

Efekt kodu:
Jakiś FajoSki TeKscik
Jakiś <u>Fajoski</u> TeKscik

A chce:
Jakiś FajoSki TeKscik
Jakiś <u>FajoSki</u> TeKscik

Moze ktos ma pomysl jak to rozwiazac ?
dragossani
Nie lepiej użyć str_replace()? Dokumentacja twierdzi, że jest binary-safe (nie grzebie w wielkości znaków).
DeyV
Może czegoś nie zrozumiałem, ale od kiedy termin binary-safe ma jakikolwiek związek z wielkościa znaków?
Czy mała i duża litera ma ten sam zapis w postaci binarnej? nieee
casperek
Ale to nie jest rozwiazanie mojego problemu, moze ktos ma inny pomysl?
kicaj
w ciagu 2 tygodni 3x ten sam temat poruszony, ja go zaczelem pod adresem http://www.klub69.pl/~php1/viewtopic.php?t...aaecb2d29bcfc7c
dragossani
Cytat
Może czegoś nie zrozumiałem, ale od kiedy termin binary-safe ma jakikolwiek związek z wielkościa znaków? Czy mała i duża litera ma ten sam zapis w postaci binarnej? nieee

"Binary-safe" to oczywiście nie to samo co "case-sensitive" ale jak sam napisałeś, dla funkcji typu "binary-safe" mała i duża litera są dwoma różnymi znakami - efekt jest taki, że string na wyjściu z takiej funkcji nie powinien mieć zmienionej wielkości znaków. Chyba, że czegoś nie rozumiem, to poproszę o oświecenie.
DeyV
oczywiście że masz rację, z tym wyjatkiem że:
1. str_replace jest "case-sensitive"
2. w topicu nie chodziło o to, by rozpoznać wystąpienie danego tekstu, nizależnie od formy, w jakiej został napisany, lecz by po zamianie ten tekst nadal taki był. Niestety, ale chyba nie jest to możliwe. Większość funkcji pod jakis tekst podstawia podany przez nas tekst, z naszymi wielkościami znaków.
No, może przy pomocy w.r. coś by sie dało, ale nie wiem jak się za to zabrać.
scanner
A może by tak metodą czołgową sprawdzić źródełka tego forum? Przy opcji szukania skrypt zaznacza wyszukiwane frazy tongue.gif
DeyV
A rzeczywiście...

tylko bądź tu mądry i wykorzystaj ten kod. Moja znajomość w.r chyba nie wystarcza.
Kod
function phpbb_preg_quote($str, $delimiter)

{

    $text = preg_quote($str);

    $text = str_replace($delimiter, '' . $delimiter, $text);

    

    return $text;

}





//

// Was a highlight request part of the URI?

//

$highlight_match = $highlight = '';

if (isset($HTTP_GET_VARS['highlight']))

{

    // Split words and phrases

    $words = explode(' ', trim(htmlspecialchars(urldecode($HTTP_GET_VARS['highlight']))));



    for($i = 0; $i < sizeof($words); $i++)

    {

  if (trim($words[$i]) != '')

  {

     $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', 'w*', phpbb_preg_quote($words[$i], '#'));

  }

    }

    unset($words);



    $highlight = urlencode($HTTP_GET_VARS['highlight']);

}





    //

    // Highlight active words (primarily for search)

    //

    if ($highlight_match)

    {

  // This was shamelessly 'borrowed' from volker at multiartstudio dot de

  // via php.net's annotated manual

  $message = str_replace('"', '"', substr(preg_replace('#(>(((?>([^><]+|(?R)))*)<))#se', "preg_replace('#b(" . $highlight_match . ")b#i', '<span style="color:#" . $theme['fontcolor3'] . ""><b>1</b></span>', '0')", '>' . $message . '<'), 1, -1));

    }

To chyba cały kod, za to odpowiedzialny sad.gif
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.