Estoy usando WordPress junto con el complemento de la API JSON (http://wordpress.org/extend/plugins/json-api/) para generar respuestas a nuestro otro sitio.Weird JSON encoding using json_encode
He golpeado un problema muy raro (estamos usando PHP 5.3.6), cuando pase la siguiente matriz http://pastebin.com/xdfYjrvK a json_encode() que me da este (con JSON tipo de contenido): http://pastebin.com/T61XGPP5
Así que la mierda al principio, en el ejemplo anterior es 2609 y 0 al final, cambia dependiendo del tamaño de la respuesta, más contenido -> número hexadecimal más alto. También aparece solo cuando la cantidad de respuesta es "suficientemente alta", por lo que funciona en respuestas pequeñas.
Primero pensé que era el complemento, pero funciona localmente (en dos máquinas diferentes Mac OS X) y hemos actualizado todos los paquetes en el VPS (Debian, Apache, Nginx, PHP) a las últimas versiones.
Sólo se muestra cuando el envío del tipo de contenido, no cuando se da salida el resultado $ con el texto sin formato en lugar de la aplicación/JSON:
$charset = get_option('blog_charset');
if (!headers_sent()) {
header('HTTP/1.1 200 OK', true);
header("Content-Type: application/json; charset=$charset", true);
}
echo $result;
$ charset se establece en UTF-8.
La consola Google Chrome dice: "Recurso interpretado como Documento pero transferido con el tipo MIME application/json".
Entonces, ¿alguien tiene una idea de lo que está sucediendo aquí?
¿Dónde se inicializa $ result? ¿Es un valor json_encode-d? . –
Sí, se trata de otra función que se encarga de la json_encoding con el construido en –