si por que, la solucion que distes, reemplaza, y eso puede provocar un problema si la palabra estuviera asi : "Colegas" tu codigo la reemplazaria por cole[X]gas , se perderia el atributo de la C en mayuscula.
en el codigo encontre un problema, cuando encuentra la palabra al principio y la funcion stripos devuelve 0 , y el if lo considera false. tuve que cambiar:
if($posicion){
por
if($posicion!==false){
si encuentras una solucion mas corta, avisas xD
Código PHP:
function reemplzpalabras ($texto){
$lista_palabras = array('colega','monitor');
for($i=0;$i<count($lista_palabras);$i++){
$palabra = $lista_palabras[$i];
$continuawhile = true;
while($continuawhile){
$posicion = stripos($texto,$palabra);
if($posicion!==false){
$texto = substr($texto, 0, $posicion+3 ) . "[X]" . substr($texto, $posicion+3 );
}else{
$continuawhile = false;
}
}
}
return $texto;
}