Bueno, mejorando el aparente (pero efectivo y r�pido) churro que puse ayer, vamos a poner un par de cositas m�s:

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
----------------------------------

Responder a