Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/12/2009, 08:20
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Marcar palabras de una cadena

Hola

En el caso que muestro se marca únicamente todas las coincidencias con la última palabra que busco. Busco dos palabras (marcar y palabras) y solamente se marca palabras

Código PHP:
Ver original
  1. <head>
  2. <title></title>
  3. <style type="text/css">
  4. <!--
  5. .texto {
  6.    background-color: #F0F0F0;
  7.    font-family:Verdana;
  8.    color: navy;
  9.    font-size: 10px;
  10.    text-align:left;
  11. }
  12. td subC0
  13. {
  14.     background-color: #C0FF3E;
  15. }
  16. td subC1
  17. {
  18.     background-color: #FFFF00;
  19. }
  20. td subC2
  21. {
  22.     background-color: #00FFFF;
  23. }
  24. td subC3
  25. {
  26.     background-color: #7FFFD4;
  27. }
  28. td subC4
  29. {
  30.     background-color: #FFC0CB;
  31. }
  32. td subC5
  33. {
  34.     background-color: #FFBBFF;
  35. }
  36. td subC6
  37. {
  38.     background-color: #FFD700;
  39. }
  40. td subC7
  41. {
  42.     background-color: #BBFFFF;
  43. }
  44. td subC8
  45. {
  46.     background-color: #FF7F00;
  47. }
  48. td subC9
  49. {
  50.     background-color: #FFE4C4;
  51. }
  52. -->
  53. </style>
  54. </head>
  55. <body>
  56. <table bgcolor="navy" border="0" cellspadding="0" cellspacing="1px">
  57. <tr height="40px">
  58. <td class="texto">
  59. <?php
  60. //$cad = stripslashes($_GET["t"]);
  61. //$cad = strip_tags($cad);
  62. $cad = "marcar-palabras";
  63. $array_cadena  = explode("-",$cad);
  64. $strOriginal = "Esto es un ejemplo para desMARCAR las palabras? que quiero marcar, acorde a las 'palabras' que ....";
  65.  for ($i=0; $i<sizeof($array_cadena); $i++){
  66.   $patron = "/\b($array_cadena[$i])+\b|\b([des|il|in|im|ir|un|non]+)\B($array_cadena[$i]+\b)|(\b$array_cadena[$i][ed|er|ing|s|es|ful|less|dom|ship|ness|hood|ty|ance|ment|ly|ally|fuly|est|]+\b)/i";
  67.   $reemplazo = "<subC".$i.">$1$2$3$4</subC".$i.">";
  68.   $strMarcado = preg_replace($patron, $reemplazo , $strOriginal);
  69.  }
  70. echo $strMarcado;
  71. ?>
  72. </td>
  73. </tr>
  74. </table>
  75. </body>
  76. </html>
  77. </body>
  78. </html>

¿Qué he de hacer para que sean marcadas ambas palabras? ya que con ambas hay coincidencias

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />