Hola:
Cuando php tiene control de la página, no puede saber si hay javascript a menos que se refresque de alguna manera... podrías hacer ese refresco con javascript y con html, con algún parámetro en ambos casos para evitar la recursión infinita...
Por ejemplo añadiendo una variable que se lea con GET
if (isset($_GET["js"])
If ($_GET["js"] == "si") hay_js();
else
no_hay_js();
else echo <<< ini
<meta http-equiv="Refresh" content="5 ;url=<?=$_SERVER['HTTP_REFERER']?>?js=si" />
<script >
location.href = location.href += "?js=no";
</script>
ini;
No lo he probado, pero creo que debería funcionar.
Saludos