Foros del Web » Programando para Internet » PHP »

includes y utf-8

Estas en el tema de includes y utf-8 en el foro de PHP en Foros del Web. Hola, despues de 5 años casi programando en ASP, hoy me decido, complicado con los tiempos para colmo, a hacer un sitio en PHP y ...
  #1 (permalink)  
Antiguo 14/12/2005, 13:07
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
includes y utf-8

Hola, despues de 5 años casi programando en ASP, hoy me decido, complicado con los tiempos para colmo, a hacer un sitio en PHP y llevando a cabo otras experimentaciones

La primera pregunta que tengo es la siguiente. Quiero hacer los famosos includes para poder separar el encabezado, navegación y pie. Hice lo siguiente:

default.php
Código PHP:
...
<body>
    <div id="global">
<?php include("templates/encabezado.inc.php"?>
<?php 
include("templates/navegacion.inc.php"?>
        <div id="contenido">
            <p>Contenido de mis secciones</p>
        </div>
<?php include("templates/pie.inc.php"?>
    </div>
</body>
...
en donde los *.inc.php tienen la siguiente forma:
Código HTML:
<div id="navegacion">
	<h2>Secciones del sitio</h2>
	<ul>
		<li><a href="empresa.htm" class="nav1" title="Informaci&oacute;n institucional de la empresa"><span>La Empresa</span></a></li>
		<li><a href="productos.php" class="nav2" title="Nuestro cat&aacute;logo de productos"><span>Nuestros Productos</span></a></li>
		<li><a href="clientes.php" class="nav3" title="&Aacute;rea destinada s&oacute;lo a clientes"><span>&Aacute;rea Clientes</span></a></li>
		<li><a href="contacto.php" class="nav4" title="Formas de contactarnos"><span>Cont&aacute;ctenos</span></a></li>
	</ul>
</div> 
los cuales por el momento tienen exclusivamente contenido html.

¿Esta bien esta forma que estoy haciendo para gestionar una especie de plantilla? ¿Existe algún método mejor? En caso afirmativo: ¿Podrían indicarme alguna aplicación ya desarrollada (descargable y posible de investigar para un novato) que utilice buenas técnicas de programación en php?

He visto que, a diferencia de ASP, existen multitud de funciones para utilizar en mis aplicaciones. ¿Cuál sería buen método de conocer las más significativas? ¿Es necesario alguna forma de instalación en el servidor para este tipo de cosas como pear, o todos estos "extras" no son más que funciones utilizables a partir de un include?

Otra cosa que me ha saltado es que codifiqué (por primera vez) mi sitio en utf-8. Al ir desarrollando el diseño de la pagina con extensión html todos los acentos se veian bien, cuando cambié la extensión a php se volvieron todos locos (generalmente se transforman a signo "?"). Por esta razón, como verán en el código html, cambié por entidades. ¿Cómo podría solucionar este incoveniente?

Creo que se me fue la mano en la cantidad de preguntas, espero alguien me entienda. Y ya les aviso que voy a estar molestando seguido en este foro a partir de hoy!

Saludos y muchas gracias!
__________________
Sergio
  #2 (permalink)  
Antiguo 15/12/2005, 07:38
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
que mala bienvenida !!!
__________________
Sergio
  #3 (permalink)  
Antiguo 16/12/2005, 06:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
¿Esta bien esta forma que estoy haciendo para gestionar una especie de plantilla? ¿Existe algún método mejor? En caso afirmativo: ¿Podrían indicarme alguna aplicación ya desarrollada (descargable y posible de investigar para un novato) que utilice buenas técnicas de programación en php?
Las técnicas son iguales que las que usarías en ASP.
Lo que has usado si ese es tu proposito: sólo llamar a código que tienes en scripts/páginas aparte .. está bien.

También tienes técnicas (que se basan en el mismo principio) de "web modulares". Una FAQ al respecto:

http://www.forosdelweb.com/showthrea...278#post265278

Revisa las FAQ's del foro PHP en general .. veras mucha información útil.

En PHP (al igual supongo que en ASP) tienes lo que denominan "motores" de gestión de "templates" .. Algo más avanzado en el modelo de una página dinámica donde se separa por completo la presentación del código (PHP). Por si quieres verlo, algunas de ellas:

NokTemplate (en catellano .. para que veas una introducción al tema):
http://www.jpw.com.ar/noktemplate/

Smarty (de las más completas y potentes)
http://smarty.php.net

Sobre aplicaciones ya hechas que utilicesn estas técnicas: web modular, motores de templates .. Tienes muchas en:

http://www.hotscripts.com/PHP/Script...ams/index.html

Cita:
He visto que, a diferencia de ASP, existen multitud de funciones para utilizar en mis aplicaciones. ¿Cuál sería buen método de conocer las más significativas?
Lo mejor es visitar el manual oficial de referencia de PHP: www.php.net/manual

Ahí tienes toda la referencia del lenguaje .. no hay funciones "más significativas" que otras .. ten presente que cuando un programa tiene el problema delante y debe darle curso con la "función", "método", classe o implementando el código necesario .. Pero .. antes de "cranearse" implementando un algorítmo que "pudiera" ya estar implementado como parte de una función "nativa" de PHP, .. lo mejor es revisar el capítulo correspondiente a la temática del problema a resolver; es decir .. si tengo que hacer algo con una "cadena" (string) .. visa antes de nada el capítulo correspondiente a dicho tema en el manual por qué lo más probable es que ahí encuentres una función para tal fin o algunas que te ayudarán a resolver el problema. Pero, .. no empieces a resolver el problema con "funciones" básicas que ahora conoces .. intenta "leer" la documentación oficial para ir tomando "vocabulario" en PHP.

Cita:
¿Es necesario alguna forma de instalación en el servidor para este tipo de cosas como pear, o todos estos "extras" no son más que funciones utilizables a partir de un include?
Esto es lo primero que debes conocer sobre PHP .. que "herramientas" dispones. En PHP tienes lo que llaman "extensiones" (sería equivalente a un "componente"? (creo que le llaman así) de ASP). Estas "extensiones" aportan nuevas funcionalidades traducido al uso práctico en un nuevo juego de funciones para tratar tal tema concreto. Estas extensiones las instalas en el servidor y .. depende de que S.O. trabajes así será simplemente "habilitarlas" o bien necesitaras cierta re-compilación de PHP.

Por otro lado tienes lo que llaman "classes" que son "objetos" (programados en Programación Orientada a objetos) .. eso en definitiva no es más que código PHP puro que se usa a modo de "librería" .. por ende el código del "objeto" en sí siempre se "incluye" en tus scripts (por un include() o lo que corresponda) y de ahí los usas (instanciandolos .. usando sus métodos ..etc).

PEAR por ejemplo es en su base un montón de "objetos" bajo una estructura bien definida que aprovecha las virtudes de la OOP en cuanto a herencia y demás historias que hacen que algunas de estas "classes" tengan dependencias de otras .. todo esto con el objetivo de re-usar lo más posible el código ya creado. PEAR normalmente se "instala" en el servidor (aunque en el fondo es código PHP sólo) en algún sitio concreto del servidor y se ajusta cierta configuración de PHP para que todos los scripts que lo requieran de tus aplicaciones las accedan fácilmente de forma genérica.


Cita:
Otra cosa que me ha saltado es que codifiqué (por primera vez) mi sitio en utf-8. Al ir desarrollando el diseño de la pagina con extensión html todos los acentos se veian bien, cuando cambié la extensión a php se volvieron todos locos (generalmente se transforman a signo "?").
Supongo que te refieres a que intentas usar:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Como definición del "charset" a usar en tu página y al pasarlo por PHP (.php) no es asumida o interpretada esa definición??

En principio .. podrías uar la función:
htmlspecialschars()

Esto te obligaría a meter o pasar por dicha función el "texto" HTML que ahora usas y al parecer lo escribes manualmente. Este proceso cuando los datos los gestionas a nivel de Base de datos o similar no es tanto problema aplicar dicha función. Lo que hace la función es exactamente lo que has hecho manualemnte sobre las entidades HTML pero de forma automática:

Cita:
echo htmlspecialchars($utf8_string, ENT_COMPAT, 'UTF-8');
Revisa este documento:
http://www.sitepoint.com/blogs/2005/...-php-and-utf-8

Ahí creo que hablan de la instalación de ciertas extensiones para PHP tipo inconv y mbstring para trabajar el tema a nivel de servidor, no siendo necesario usar estas funciones siempre.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:37.