così sui due piedi mi viene solo questo.

Metti le parole che vuoi mantenere maiuscole in un array.

poi prendi parola per parola e se !in_array allora strtolower