Pregunta

Cuando se utiliza el include de php función de la inclusión es correctamente ejecutado, pero también es la salida de un char antes de la salida de la inclusión es arrojado, el char es de valor hexadecimal 3F y no tengo idea de dónde viene, a pesar de que parece suceder con todos los incluyen.

Al principio me thbought fue la codificación del archivo, pero este no parece ser un problema.He creado un caso de prueba para demostrarlo:(el enlace ya no funciona) http://driveefficiently.com/testinclude.php este archivo consta de sólo:

<? include("include.inc"); ?>

y la incluyen.inc sólo consta de:

<? echo ("hello, world"); ?> 

y, sin embargo, el resultado es: "?hola, mundo" donde ?es un char con un valor aleatorio.Es este valor, que no sé el origen de y a veces es cagarla mis sitios un poco.

Alguna idea de dónde podría estar viniendo?Al principio pensé que podría ser algo que ver con la codificación del archivo, pero no pienso que sea un problema.

¿Fue útil?

Solución

Lo que estamos viendo es un UTF-8 Marca de Orden de Bytes:

El UTF-8, en representación de la lista de materiales es la secuencia de bytes EF BB BF, que aparece como el ISO-8859-1 caracteres ï"¿ en la mayoría de los editores de texto y navegadores web no esta preparada para manejar UTF-8.

Marca de Orden de bytes en la Wikipedia

PHP no entender que estos personajes deben estar "ocultos" y envía estas en el navegador como si fueran caracteres normales.Para deshacerse de ellos tendrá que abrir el archivo con un "adecuado" editor de texto que te permitirá guardar el archivo como UTF-8 sin BOM.

Usted puede leer más acerca de este problema aquí

Otros consejos

Su servidor web (o su editor de texto), al parecer, incluye un Lista de materiales en el documento.No veo el pícaro personaje en mi navegador, excepto cuando me puse el sitio de la codificación explícita a Latin-1.Entonces, veo a dos (!) UTF-8 Listas de materiales.

/EDIT:El hecho de que hay dos Listas de materiales llego a la conclusión de que la lista de materiales está incluido en realidad por su editor en el principio del archivo.Qué editor usas?Si utiliza Visual Studio, tienes que decir "Guardar Como ..." en el menú Archivo y, a continuación, elija el botón "Guardar con codificación ...".Allí, selecciona "UTF-8 sin BOM" o algo similar.

No se muestran en la página en Firefox o IE, pero se puede ver que el personaje divertido al Ver la Fuente en IE

enter image description here

Es que esta en una máquina Linux?Podría usted buscar y reemplazar con vim o sed para ver si usted puede deshacerse de las 3F de esa manera?

Si es en Windows, intente abrir incluir.inc con el Bloc de notas para ver si el gracioso char es visible y puede ser eliminado.

También me gustaría ser curioso ver qué pasa si usted copia el código de la inclusión y sólo se ejecuta por sí mismo.

Carácter 3F realidad es el signo de interrogación, no es solo mostrar como uno.

Puedo obtener los mismos resultados como Thomas, no hay signo de interrogación que aparecen.

En teoría podría ser algún problema con un proxy web, pero me inclino a sospechar de una perdida signo de interrogación en tu PHP marcado...que tal vez usted ha solucionado por ahora, así que no veo el problema.

Veo hello, world en la página enlazada.No hay problemas de que puedo ver...

Estoy usando Firefox 3.0.1 y Windows XP.¿Qué navegador y sistema operativo está en ejecución?Tal vez eso podría ser el problema.

También me gustaría ser curioso ver lo que que pasa si copia el código de el incluir y sólo se ejecuta por sí mismo.

Marca:esta es una solución de alojamiento compartido, por lo que no puedo obtener acceso al intérprete de comandos en el archivo.Sin embargo, como se puede ver aquí, no hay personajes que no deberían estar allí, y la ejecución del mismo archivo como una secuencia de comandos no produce este char.(El hosting compartido de la compañía ha sido de 0 ayuda, continuamente me están diciendo que es un problema del navegador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top