Bueno en este caso es mejor crear una funcion, porque Optimizas los codes, yo para buscar texto, verificar o sacar, quitar siempre uso Expresiones Regulares, hay que acostumbrarse.
No es que sea mas colto, ya que pasa a ser una funcion, ademas no creo que gaste mucho recurso porque nadamas la funcion se lee una sola vez, tambien se puede hacer facilmente con POO...
Usas una función para detectar o un POO para detectar y tienes un buen code, el que hiciste va a gastar siempre mas recursos, porque lo mas seguro se usara en mas de una variable y se hara lo mismo una y otra vez y gastara mas recursos y mas lineas.
Se lo transforma en funcion y listo a.a
<?php
Function detect ($texto){
$palabras=array("nabo","gil","palabra");// Aca va las palabras que no queres que aparescan
$a =str_ireplace($palabras,"#@!%",$texto);// lo reemplazamos
return $a;
}
$y="hola nabo, no seas gil o Gil (para que veas que tambien borra mayusculas), aca iria otra palabra mas";
$t=detect($y);
echo "$y<br>$t"
?>