Al principio del php: [code] ob_start(); [/code]
Ahora ponemos todo el c�digo que queramos y lo escribimos con echo a la pantalla.
Al final ponemos esto otro: [code] $buffersize = ob_get_length(); header("Content-Length: $buffersize"); header('Content-type: text/xml; charset=UTF-8'); ob_end_flush(); [/code]
As� tenemos todo ordenado, sabemos que es un xml codificado en utf-8 y adem�s podemos hacer as� una precarga desde flash al saber el tama�o del xml generado al vuelo.
----- Original Message ----- From: "Hari Seldon" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 01, 2004 1:38 AM
Subject: RE: [ASNativos] [semi OT] devolver xml con php
Del manual de PHP:
XXXVIII. Funciones HTTP http://www.php.net/manual/es/ref.http.php header http://www.php.net/manual/es/function.header.php
header
(PHP 3, PHP 4 , PHP 5)
header -- Enviar una cabecera HTTP pura
Descripci�n
void header ( string cadena [, bool reemplazar [, int cod_respuesta_http]])
La funci�n header() es usada para enviar cabeceras HTTP puras. Consulte la
especificaci�n HTTP/1.1 para m�s informaci�n sobre las cabeceras HTTP.
El par�metro opcional reemplazar indica si la cabecera debe reemplazar una
cabecera previa semejante, o si debe agregar una segunda cabecera del mismo
tipo. Por defecto esta funci�n procede a reemplazar, pero si pasa FALSE como
el segundo argumento, puede obligar a que se env�en m�ltiples cabeceras del
mismo tipo. Por ejemplo:
<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
El segundo par�metro opcional, cod_respuesta_http, obliga a que el c�digo de
respuesta HTTP sea el valor especificado. (Este par�metro se encuentra
disponible a partir de PHP 4.3.0.)
.........................Sobre lo que comenta Joseba, efectivamente, si se usa un archivo guardado, hay que tener mucho cuidado con c�mo maneje PHP el fichero d�nde guarda esa cadena; las funciones de manejo de archivos de PHP deber�an de dejarlo manejar sin problemas.
De todas formas, la cuesti�n me ha suscitado "curiosidad", y existe una funci�n en PHP que codifica una cadena como UTF-8:
http://es.php.net/manual/es/function.utf8-encode.php
utf8_encode (PHP 3>= 3.0.6, PHP 4 , PHP 5) utf8_encode -- codifica una cadena ISO-8859-1 a UTF-8 Descripci�n string utf8_encode ( string data) Esta funci�n codifica la cadena data a UTF-8, y devuelve la versi�n codificada. UTF-8 es un mecanismo est�ndar usado por Unicodepara codificar valores de caracteres amplios en un chorro de bytes. UTF-8 es transparente a caracteres de ASCII plano, es auto-sincronizado (significa que es posible para un programa averiguar d�nde comienzan los caracteres en el chorro de bytes) y se puede usar con funciones de comparaci�n de cadenas normales para ordenar y otros fines. .........................
Y buscando en las funciones de manejo de archivos, no he visto nada que se refiera a "guardar como UTF-8".. Con lo cu�l, supongo -no lo he probado- que el esquema a seguir ser�a el siguiente:
Crear string XML (o bien con objeto XML o bien mediante cadenas) -> codificarlo mediante funci�n utf8_encode �queremos guardarlo en el servidor? Si -> usar funciones de sistema de archivos de PHP para guardar la cadena previamente codificada como UTF-8 No -> escribir encabezados correspondientes con funci�n header, y enviar la cadena previamente codificada como UTF-8
Eso creo que deber�a funcionar.. Aunque no lo he probado -y de momento no tengo tiempo a hacerlo-.
Tambi�n, usando la clase que comentaba en el otro post de PEAR, casi seguro que la cadena que devuelve la clase ya est� codificada en UTF-8.
Saludos :)
PS: un tema interesante, la verdad... La pena es que no est� en [PHP-ES] jejejejeje que preguntan las paridas de siempre, como subir im�genes, y chorradas de esas.. (Bueno, hay de todo, pero muchas preguntas son de ese tipo)
-----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Joseba Alonso Enviado el: martes, 30 de noviembre de 2004 22:44 Para: [EMAIL PROTECTED] Asunto: RE: [ASNativos] [semi OT] devolver xml con php
Si, pero una cosa es decir la codifiaci�n que lleva el texto y otra diferente es que realmente lleve esa codificaci�n. Puedes marcar un fichero XML como utf-8 y luego guardarlo en ANSI de toda la vida.
Yo no entiendo nada de PHP pero seguro que hay alguna manera de obligar que la salida vaya en unicode.
Un saludo
Joseba Alonso www.5dms.com www.sidedev.net > -----Mensaje original----- > De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En > nombre de Oscar Trelles > Enviado el: martes, 30 de noviembre de 2004 16:39 > Para: [EMAIL PROTECTED] > Asunto: Re: [ASNativos] [semi OT] devolver xml con php > > <?php > > header("Content-type: text/xml; charset: utf-8") > > ?> > > Aunque creo que aqui ya estas indicando la codificacion: > > echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; > > > Saludos, > > Oscar >
---------------------------------- Lista ASNativos:[EMAIL PROTECTED] http://www.5dms.com/listas ----------------------------------
---------------------------------- Lista ASNativos:[EMAIL PROTECTED] http://www.5dms.com/listas ----------------------------------
---------------------------------- Lista ASNativos:[EMAIL PROTECTED] http://www.5dms.com/listas ----------------------------------

