Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/01/2006, 22:00
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 10 meses
Puntos: 5
Sin ser un experto, estoy seguro de que las comillas están quedando abiertas en la versión original.

La barra invertida "\" es el caracter de escape. Le dice al intérprete de php que lo que sigue lo tome "como viene", es decir, que no lo interprete como código. Si escribieras, por ejemplo:

Código PHP:
<?php 
echo "hola \"pepe\"";
?>
Te mostraría por pantalla:

hola "pepe".

Si pusieras, en cambio:
Código PHP:
<?php 
echo "hola "pepe"";
?>
La salida sería:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in

Por la sencilla razón de que las segundas comillas se interpretan como código y por eso están cerrando el string/cadena en un lugar no previsto.

Otro ejemplo que tengo a mano: cuando hay que referenciar una ruta absoluta y php está instalado sobre windows, se escribe:

Código PHP:
include("C:\\Apache\\www"); 
y no

Código PHP:
include("C:\Apache\www"); 
porque el segundo te daría: C:Apachewww en lugar de C:\Apache\www.

Dicho esto, si probás el script desde un navegador (que es muy recomendable hasta ver que funcione ok si estás usando flash, que te deja "a ciegas"), vas a ver que te va a dar un error (lógicamente, si los errores están activados).

Y, además, hice una comprobación extra con el debugger de Zend Studio y es así, nomás: las comillas no están cerradas, por eso da el error cuando llega a la parte de "@".

Así que, me parece que lo mejor que podés hacer es revisar ese punto y probar el script desde un navegador hasta que obtengas los resultados que buscás. De otra manera, te arriesgás a que a veces/en algunos servidores ande y a veces/en otros servidores, no.

(Entre paréntesis, para colorear la sintaxis este foro (y tantos otros) usan una función nativa de php llamada highlight_sting(), que aplica a lo que va entre ; no creo que esta función te esté "engañando").

Suerte