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);
?>