str_replace adaugare cuvant cu tag html similar

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje: 500

str_replace adaugare cuvant cu tag html similar

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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
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  

trif Mesaje: 500
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
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

Subiecte similare