2010-11-24 14 views
5

Como todos los demás, estoy almacenando la información de visualización de mi sitio en archivos de hojas de estilo. Y quiero crear un back-end cms para que los usuarios puedan, por ejemplo, cambiar < h1> color, tamaño, etc.¿Cuál es la forma correcta de insertar código PHP en mis archivos CSS y JavaScript?

Entonces, ¿cuál es la forma correcta de incrustar el código PHP en mi (s) archivo (s) CSS?

es la adición de esta cabecera:

<?php header("Content-type: text/css"); ?> 

Y cambiando extensión de archivo en el enlace:

<link rel="stylesheet" type="text/css" media="screen" href="style.php"> 

Válido?

¿Y qué pasa con JavaScript? En este momento me estoy haciendo eco de las etiquetas <script type="text/javascript">, pero tal vez también hay una forma de incrustar todo en los archivos .js?

Gracias!

Respuesta

9

Sí, esto es perfectamente válido.

El mismo se puede hacer para Javascript también mediante el envío de

<?php header("Content-type: application/javascript"); ?> 

Sin embargo, esto no es óptima desde el punto de vista del rendimiento debido a un proceso PHP tiene que ser iniciado por servir a esos recursos.

Si tiene muy pocas propiedades de cambio dinámico de CSS o variables JS, consideraría ponerlas en el encabezado del documento y continuar sirviendo los archivos externos estáticamente.

Recuerde que generalmente, no hay encabezados de almacenamiento en caché enviados para archivos PHP. ¡Tendrás que encargarte de enviar los encabezados correctos dentro de tu script PHP! Cheers @oracle profesional certificado para el recordatorio.

+0

Gracias, voy a aceptar su respuesta en 10 minutos. – fomicz

+1

, pero, ¿guardaría su navegador el estilo/javascript, incluso si se trata de php? –

+1

@oracle depende de la configuración del servidor para los archivos .php, pero por lo general no. Tendría que enviar encabezados de caché, buen punto, y agregar eso a la respuesta. –

0

Asegúrese de que está analizando el php en esos archivos.

En .htaccess:

AddType application/x-httpd-php .php .css .js 

Esto asegurará que cualquier <?php ?> etiquetas en los tipos de archivos que no sean .php serán analizados por el servidor y el código PHP no es legible por los usuarios.

+3

Awww ... Si lo hace, cada solicitud de recurso CSS/JS se pasará a través del intérprete de PHP. Como regla general, eso no es bueno. Mejor utilizar la extensión nativa .php en ese caso –

5

Lo que estás haciendo es absolutamente válido.

Sin embargo, si está ejecutando un sitio más grande con muchos visitantes, debe preocuparse de dejar que PHP "cree" un archivo CSS "real" cuando el usuario actualice su diseño para guardar el rendimiento de sus servidores :

<?php 

header("Content-type: text/css"); 

// Your database magic here to fetch the user-specific designs 

// open the cached css 
$cachefile = "cachedCSS/mycss.css"; 

if (file_exists($cachefile)) { 
    // the page has been cached from an earlier request 
    // output the contents of the cache file 
    include($cachefile); 
    // exit the script, so that the rest isnt executed 
    exit; 
} 

$fp = fopen($cachefile, 'w'); 
// save the contents of output buffer to the file 
fwrite($fp, ob_get_contents()); 
// close the file 
fclose($fp); 
// Send the output to the browser 
ob_end_flush(); 

Leer más sobre él aquí: http://www.theukwebdesigncompany.com/articles/php-caching.php

+0

+1, esto es lo mejor de ambos mundos (aunque también es el más complejo de implementar, por lo general, vale la pena el esfuerzo solo para sitios con mucho tráfico) –

Cuestiones relacionadas