Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/05/2011, 05:59
Avatar de zacktagnan
zacktagnan
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 20 años
Puntos: 3
Respuesta: Marcar palabras de una cadena

Espero que alguien me responda si no es mucha molestia a todas las dudas expuestas en el anterior mensaje.

Sobre todo a como modificar el segundo parámetro del siguiente array_push para que como resultado final, teniendo en la cadena la palabra "marcar" me marque toda coincidencia, es decir, tanto estando como palabra independiente, o al inicio de o al final o dentro de otra palabra y sin tener en cuenta que esté en mayúsculas o minúsculas. O sea:

que marque si encuentra palabras en la cadena pasada como marcar, comarca, desMARCAR, marcarlas o desMarcarlas. Todas de una forma o de otra tienen o contienen "marcar" y deberían remarcarse con el formato deseado.

Código PHP:
array_push($patron"/\b($array_cadena[$i])+\b|\b([des|il|in|im|ir|un|non]+)\B($array_cadena[$i]+\b)|\b($array_cadena[$i]+)\B([ed|er|ing|s|es|ful|less|dom|ship|ness|hood|ty|ance|ment|ly|ally|fuly|est|]+\b)/i"); 
El código tal y como lo dejo Adler, formatea si lo que se busca es una palabra en sí, o si está al inicio o al final pero NO si está dentro de otra palabra.

Porfa, ¿como sería el cambio a aplicar?


PD:
Esto ha sido separado de otro POST que por su falta de actividad, ya no admite responder en él y por eso con mis respuestas se ha creado un nuevo tema, aparte que directamente si se accede a él, el sistema se redirige directamente a este.

En el post mencionado, se daba el siguiente código que es en el que yo me baso para plantear mis dudas:

Código PHP:
<style type="text/css">
<!--
.texto {
   background-color: #F0F0F0;
   font-family:Verdana;
   color: navy;
   font-size: 10px;
   text-align:left;
}
td subC0
{
    background-color: #C0FF3E;
}
td subC1
{
    background-color: #FFFF00;
}
td subC2
{
    background-color: #00FFFF;
}
td subC3
{
    background-color: #7FFFD4;
}
td subC4
{
    background-color: #FFC0CB;
}
td subC5
{
    background-color: #FFBBFF;
}
td subC6
{
    background-color: #FFD700;
}
td subC7
{
    background-color: #BBFFFF;
}
td subC8
{
    background-color: #FF7F00;
}
td subC9
{
    background-color: #FFE4C4;
}
-->
</style>

...

<?

    $patron 
= Array();
    
$reemplazo = Array();
    
//$cad = stripslashes($_GET["t"]);
    //$cad = strip_tags($cad);
    
$cad "marcar-palabras";
    
$array_cadena  explode("-",$cad);
    
$strOriginal "Esto es un ejemplo para desMARCAR las palabras? que quiero marcar, acorde a las 'palabras' que ....";
    for (
$i=0$i<sizeof($array_cadena); $i++){
     
    
array_push($patron"/\b($array_cadena[$i])+\b|\b([des|il|in|im|ir|un|non]+)\B($array_cadena[$i]+\b)|\b($array_cadena[$i]+)\B([ed|er|ing|s|es|ful|less|dom|ship|ness|hood|ty|ance|ment|ly|ally|fuly|est|]+\b)/i");
    
array_push($reemplazo"<subC$i>$1$2$3$4$5</subC$i>");  
    }
    
ksort($patron);
    
ksort($reemplazo);
    echo 
preg_replace($patron$reemplazo$strOriginal);
?>
__________________
Saludos,

zacktagnan.
=================================================

Última edición por zacktagnan; 02/05/2011 a las 12:33