Salve a tutti... Domanda semplice semplice

esiste in php un modo per fare in modo che lettere o punteggiatura ripetuta venga resa singola?

esempio

Ciao!!!!!!!! > Ciao!

Uffa....... > Uffa...

ihihihihihihihihih > ihih

pensavo a un str_replace ma come posso impostare, per esempio, che se il carattere "." è inserito più di 3 volte si veda a video "..." ecc ecc?

grazie