Hola yebenes,
Para hacer plantillas o templates, normalmente se suele recurrir a una o varias funciones que tengan la base para escribir un patrón HTML. También se suelen utilizar objetos o clases, para este fin.
Por ejemplo una plantilla básica de html podría ser:
<?phpfunction template($text){ echo '<html><head> <title>Mi webpage</title></head><body>'.$text.'</body></html>';}
De esta manera, podrías llamar a la función template('Texto en mi web'); para meter contenidos y hacer otra llamada para meter otros.
Aunque suele ser más cómodo hacer plantillas para el encabezado o pie de página.
También te recomendamos algún tutorial como el siguiente:
http://www.cristalab.com/tutoriales/creacion-y-uso-de-plantillas-o-templates-en-php-c132l/ (http://www.cristalab.com/tutoriales/creacion-y-uso-de-plantillas-o-templates-en-php-c132l/)
Sobre tu segunda cuestión, puedes hacerlo de ambas formas, pero para interactuar localmente, necesitarías de HTML5 y el estándar está aun en borrador y medio implementado en algunos navegadores.
Te recomendamos que lo subas al servidor si no tienes problemas para ello.