¿Cómo reemplazar todos los caracteres especiales excepto el guión bajo y el punto en PHP?

¿Puede alguien mostrarme cómo puedo reemplazar todos los caracteres especiales en una cadena, excepto el guión bajo y los símbolos de punto? Y también he estado tratando de entender cómo hacer que esto reemplace los patrones leyendoPHP manual y es tan confuso para un principiante como yo, ¿hay alguna otra documentación o tutorial que sea fácil para los principiantes para que no tenga que publicar otra pregunta como esta y molestar a la gente cada vez que quiera usar esta función?

preg_replace('/[^a-zA-Z0-9]/', '', $string);

esto es lo que tengo que reemplaza a todos los caracteres especiales, pero quiero excepto_ y..

Respuestas a la pregunta(2)

Su respuesta a la pregunta