Para procesar archivos js (ó css) como php, tenés 2 opciones básicas, la primera y más complicada es renombrar tus archivos como php, en ese caso, la estructura correcta de tu archivo debe ser
Código PHP:
Ver original<?php
header("Content-Type: text/javascript;charset=utf-8"); ?>
/// el resto de tu script
function x(){
alert('hola');
}
Si tuvieses que pasar parámetros x get
Código PHP:
Ver original<?php
header("Content-Type: text/javascript;charset=utf-8"); ?>
/// el resto de tu script
function x(){
var a = '<?php echo $_GET['variable']; ?>';
alert(a);
}
Esto puede mejorarse, agregando compresión gzip
Código PHP:
Ver original<?php
header("Content-Type: text/javascript;charset=utf-8"); ?>
/// el resto de tu script
function x(){
var a = '<?php echo $_GET['variable']; ?>';
alert(a);
}
Y finalmente, si necesitás cachear el archivo
Código PHP:
Ver original<?php
$archivo = $_SERVER['SCRIPT_FILENAME'];
$expira = 60 * 60 * 24 * 365;
$ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT"; $eTag = "ci-".md5($archivo.$ft); header("Content-Type: text/javascript;charset=utf-8"); header("Cache-Control: public, max-age=$expira"); header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT'); ?>
/// el resto de tu script
function x(){
var a = '<?php echo $_GET['variable']; ?>';
alert(a);
}
Para los css la técinca es similar salvo que el content-type debe se text/css
La otra alternativa, puede resultar más simple o no, dependiendo de como esté configurado el php en tu apache
Si está como modulo, dejás los js y css como están, y en tu .htaccess pones
AddType application/x-httpd-php .js .css
Si tu php está instalado como cgi ó FastCgi, tendrás que ir al panel de control de tu server,y, aunque la opción no esta siempre disponible, habilitar los handlers necesarios para que las extensiones js y css sean procesadas como php
Una vez conseguido esto, la compresión y el cacheado los podés conseguir activando mod_deflate y los headers apropiados.
Saludos