Dipende dal fatto che hai abilitato i tag asp di apertura. In pratica con questa impostazione il php sia che trovi il tag <? sia che trovi <?PHP legge sempre come tag di apertura php.

Dovresti modificae le impostazioni.

Opuure inserisci il codice per la dtd in una variabile e la fai stampare direttamente al php:

Codice PHP:
<?PHP
$dtd 
'<?xml version="1.0" encoding="utf-8"?>' ;
echo 
$dtd ;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="it">
Dovrebbe funzionare. Oppure devi modificare le impostazioni del php.ini ma non credo tu vi abbia accesso sul server. Potresti però comunicare il problema all'hoster. Ciao!