Tus 3 preguntas tienen 3 respuestas completamemnte distintas entre sí.
Para obtener el nombre del host puedes usar la variable $_SERVER['HTTP_HOST']. Usando una función como
explode() puedes partir este datos en sus distintos componentes y así obtener el nombre de subdominio.
Para tu segunda duda, tendrías que verificar, usando $_SERVER['HTTP_HOST'] que el dominio a través del cuál se accede a tu sitio contenga al inicio www. Si no, haces la redirección. Sin embargo, para esto es mejor trabajar del lado de Apache, configurando un archivo .htaccess. Busca sobre
mod rewrite. Si deseas mas info al respecto puedes preguntar por el foro de Servidores Web/Apache.
Para tu tercera duda, eso es algo que ya escapa del servidor. Si deseas apuntar todos los subdominios inexistentes a un host principal imagino que debes crear wildcards desde el panel de administración de tu dominio, y hacer que *.dominio.tld apunte a
www.dominio.tld. Para estos, tendrías que preguntar en el foro de Dominios, o más apropiado incluso, contactar al Soporte de tu proveedor de dominios para ver tus opciones.