otra - incluir archivo php en html
¿Configurando PHP Include Path por sitio? (8)
Puedo establecer la ruta de inclusión de PHP en php.ini
:
include_path = /path/to/site/includes/
Pero luego otros sitios web se ven afectados por lo que no es bueno.
Puedo configurar el PHP include en el inicio de cada archivo:
$path = ''/path/to/site/includes/'';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
Pero eso parece una mala práctica y complica las cosas.
Entonces puedo hacer una inclusión de eso y luego incluirlo en cada archivo:
include ''includes/config.php'';
o
include ''../includes/config.php'';
Esto es lo que estoy haciendo en este momento, pero la ruta include de config.php
cambiará dependiendo de lo que la incluya.
¿Hay una mejor manera? ¿Importa?
En general, con mis sistemas, uso una constante DIR que es gwtcwd (). Esto se llama en construct.php (un archivo de inicio de página). Estoy de acuerdo en que include_path es probablemente una solución más concreta, pero sigo usando mis constantes de DIR por costumbre.
Dependiendo de cómo esté configurado su host, se le puede permitir colocar un archivo php.ini
en la raíz de su directorio de inicio con directivas de configuración adicionales.
Erik Van Brakel dio, en mi humilde opinión, una de las mejores respuestas.
Además, si está utilizando hosts Apache y Virtual, puede configurarlos directamente en ellos. Usando este método, no tendrás que recordar dejar los comandos php_admin en tu .htaccess.
Utilice un archivo php.ini en la raíz del sitio web si su configuración usa PHP como CGI (el caso más frecuente en hosts compartidos) con la misma sintaxis que php.ini en todo el servidor; ponlo en .htaccess si tienes PHP como módulo Apache (haz un phpinfo () si no estás seguro):
php_value include_path "donde sea"
Tenga en cuenta que php.ini por carpeta no afecta a las subcarpetas.
Su aplicación debe tener un archivo de configuración escrito en PHP. Luego, incluya eso con una página relativa en cada página del programa. Ese archivo de configuración tendrá una variable para la ruta a los directorios include, dir de plantillas, dir de imágenes, etc.
¿Por qué crees que agregar para incluir ruta es una mala práctica?
Este código cerca de la parte superior de la secuencia de comandos raíz no debería ser tan malo ...
$path = ''/path/to/site/includes/'';
set_include_path($path . PATH_SEPARATOR . get_include_path());
En mi humilde opinión, la principal ventaja es que es portátil y compatible no solo con Apache
EDITAR: Vi un inconveniente de este método: pequeño impacto en el rendimiento. ver http://www.geeksengine.com/article/php-include-path.html
Si está utilizando apache como servidor web, puede anular (si lo permite) la configuración con los archivos .htaccess . Ver el manual de PHP para más detalles.
Básicamente, pones un archivo llamado .htaccess en la raíz de tu sitio web, que contiene algunos valores PHP ini
. Siempre que haya configurado Apache para permitir modificaciones, este sitio usará todos los valores en su configuración PHP, + los valores que especifique en el archivo .htaccess .
Se puede usar solo con las
PHP_INI_PERDIR
tipoPHP_INI_ALL
yPHP_INI_PERDIR
como se indica en la página que he vinculado. Si hace clic en la lista completa, verá que la ruta de inclusión es una directiva PHP_INI_ALL
.
También puede establecer include_path
en su archivo php.ini. Soy un chico perl, así que espero poder cargar incluye e include
hacer lo correcto. Tengo todas mis inclusiones en un directorio específico, que se agrega a include_path
. Puedo hacer cosas como
require_once "ClassName.php";
No necesito preocuparme por rutas relativas o ubicaciones de archivos.
También escribí mi propio CustomRequire
para hacer cosas como
function CustomRequire ($file) {
if(defined(''MYINCLUDEPATH'')) {
require_once MYINCLUDEPATH . "/$file";
} else {
require_once $file;
}
}
De esa manera puedo cambiar cómo lo hago incluye en una fecha posterior. Por supuesto, todavía necesita encontrar una forma de incluir su código de inclusión :)