Pagina 1 din 1

str_replace adaugare cuvant cu tag html similar

Scris: Lun Feb 01, 2016
de trif
Salut,
Am o problema cu codul acesta:

Cod: Selectaţi tot

$c="de an la ";
$text = "an de an ma duc la bold cumparaturi";
$cuvinte=explode(' ', $c);
foreach ($cuvinte as $cuvant){
  $text = str_replace($cuvant, '<b>'.$cuvant.'</b>', $text);
}
echo $text;  
Rezultat:
an de an ma duc la bold cumparaturi
Pana aici este bine DAR daca adaug la

Cod: Selectaţi tot

$c="de an la b ";
un "b" imi apare asa:
<b>anb> <b>deb> <b>anb> ma duc <b>lab> bold cumparaturi
si asta nu este bine.

Care ar fi o rezolvare?

Astept raspuns.
Multumesc anticipat.

Cu stima Trif

str_replace adaugare cuvant cu tag html similar

Scris: Lun Feb 01, 2016
de MarPlo
Salut
Se poate daca adaugi cuvintele intr-un RegExp si il folosesti cu preg_replace().
Exemplu:

Cod: Selectaţi tot

$c="de an la de b ";
$text = "an de an ma duc la bold cumparaturi";
$c ='/\b('. str_replace(' ', '|', trim($c)) .')\b/is';  //make regexp with words
$text = preg_replace($c, '<b>$1</b>', $text);

echo $text;  //<b>an</b> <b>de</b> <b>an</b> ma duc <b>la</b> bold cumparaturi  

str_replace adaugare cuvant cu tag html similar

Scris: Joi Feb 04, 2016
de trif
Salut,
Nu mi-a mers ce ai facut mai sus dar am facut asa si im merge.

Cod: Selectaţi tot

$keyword = "de an la de b";
$keywords = explode(' ', trim($keyword));
$str = preg_replace('/'.implode('|', $keywords).'/i', '<b>$0</b>', $str); 
Nu stiu de ce nu imi mergea si versiunea de mai sus.

Multumesc pentru ajutor.
Cu stima Trif