2010-09-25 18 views
9

quiero incluir mi archivo PHP googleanayltics.php en cada página de mi servidor web que es un .php o documento .htmlCómo incluir un archivo del sitio PHP de todo el uso de .htaccess u otros métodos

me gustaría saber:

a) ¿Cómo agrego este derecho antes de la etiqueta </head>
B) ¿Cómo agrego la derecha justo después de la etiqueta <body>

me gustaría saber ambos métodos de flexibilidad

Creo que .HTACCESS podría lograr esto fácilmente, y si sabe cómo hacerlo, o si conoce algún método más fácil, por favor, comparta.

P.S. No quiero ir manualmente en e introduzca un código en cada archivo, es por eso que estoy haciendo esta pregunta (para ahorrar tiempo)

+0

Google analytics es por lo general un javascript si su sitio está ejecutando javascript. Por lo general, para el rendimiento, combinamos javascript y css en su propio archivo y lo comprimimos/minimizamos, por lo que parece que esta inclusión de javascript ya sería una declaración para todo el sitio. – Chris

+0

¿Cuántas páginas tienes? Podrías configurar una arquitectura mucho más flexible si solo tomas el tiempo una vez para usar el encabezado del lado del servidor y el pie de página incluye el cual se encargó de tu plantilla HTML (y Google Analytics) – philfreo

Respuesta

3

Puede anexar o archivos de anexo mediante el establecimiento de un PHP ini valor en .htaccess

php_value auto_prepend_file "full_path_to_the_include_directory/prepend.php" 
php_value auto_append_file "full_path_to_the_file_containing_your_analytics_code" 

(sería mejor establecer manualmente en php.ini)

http://php.net/manual/en/ini.core.php

+0

Gracias, ¿dónde estará el archivo antes del archivo? . Tiene que ir específicamente a la derecha ANTES de o justo DESPUÉS de las etiquetas . ¿Esto funcionaría así? –

+0

¿Hay alguna penalización de rendimiento en el uso de estos prepuestos automáticos? – Pacerier

5

EDIT: Sólo ahora veo lo que ac tually wanted (estaba oculto debido al formateo). Aunque es posible, sería una tarea muy torpe, y realmente no vale la pena el esfuerzo. Vea mi otra respuesta para saber cómo hacerlo.


Hay dos php.ini ajustes que puede estar interesado en:

auto_prepend_file y auto_append_file

que también pueden modificarse mediante .htaccess (véase la otra respuesta).

NOTAS:

  • Estos serán incluidos antes o después de toda la secuencia de comandos PHP; pero no en secciones específicas de la salida.

  • Solo afectarán a los archivos manejados que pasan por PHP, lo que significa que los archivos HTML no están incluidos, a menos que su servidor esté configurado para pasar archivos HTML a través de PHP. Esto se puede hacer añadiendo la siguiente línea a su .htaccess:

    AddType application/x-httpd-php .html .htm 
    
  • Auto anteponiendo un archivo que genera la salida es una cosa peligrosa de hacer, ya que afectará a las secuencias de comandos (rotura) que establecen las cabeceras o sesiones de uso .

+0

¿Por qué es 'x-httpd-php'? ¿Dónde se define este valor? – Pacerier

0

Esto es lo que podría hacer para lograr lo que realmente desea.

  • Cree dos archivos, llamados prepend.php y append.php.
  • Utilice el método descrito anteriormente para configurarlos como auto_prepend_file y auto_append_file.

prepend.php

<?php 

function callback($buffer) { 
    $fileContents = file_get_contents('somefile.html'); 

    // insert $fileContents right BEFORE </head> tag 
    return str_replace('</head>', $fileContents . '</head>', $buffer); 

    // insert $fileContents right AFTER <body> tag 
    // return str_replace('<body>', . '<body>' . $fileContents , $buffer); 

} 

ob_start("callback"); 

?> 

append.php

<?php 

ob_end_flush(); 

?> 

Esto se basa en output buffering y es relativamente caro. También podría encontrarse con problemas si sus scripts también usan buffer de salida.

Así que mi mejor consejo es diseñar sus scripts de forma que el diseño se use para cada página y pueda cambiar fácilmente lo que está incluido en sus páginas simplemente cambiando el diseño.

+0

Hola. No tengo idea de qué es el búfer de salida o si mis scripts lo usan ... gracias por este script prepend.php. ¿Cómo podría modificarlo para poner el código DESPUÉS de una cadena específica como ", y puede explicar qué ob_start (" devolución de llamada ") y ob_end_flush(); son para? ¡Gracias! –

+0

@ RB.J' ob_start' se enciende buffering de salida, 'ob_end_flush()' envía la salida almacenada y la apaga. Para su otra pregunta, actualicé mi respuesta - simplemente cambie las líneas comentadas. Insertar después de '' será un poco menos confiable porque la etiqueta podría contener atributos. – NullUserException

1

En .htaccess se puede poner

php_value include_path "your/include/path/here/googleanayltics.php" 
0

si es en la misma carpeta

<?php include_once("googleanayltics.php") ?> 

Si no utilice este

<?php include("/customers/f/5/f/example.com/httpd.www/folder/googleanayltics.php"); ?> 
Cuestiones relacionadas