2010-03-19 11 views
8

Estoy tratando de almacenar un correo electrónico de varias líneas en un archivo ini usando PHP/Zend Framework. Mi cadena tiene caracteres de líneas nuevas, y cuando utilizo Zend_Config_Ini para analizar el archivo ini, los nuevos caracteres de línea vuelven escapados, por lo que se imprimen en la pantalla, en lugar de un avance de línea.¿Cómo puedo escapar de un nuevo carácter de línea en un archivo .ini para que Zend_Config_Ini lo lea literalmente?

Ejemplo:

// ini file 
message = Hi {0},\n\nThis is a test message.\nGoodbye! 

analizado por Zend_Config_Ini como:

Hi {0},\\n\\nThis is a test message.\\nGoodbye! 

que luego se imprime en el correo electrónico como:

Hola Juan, \ n \ nEste es una mensaje de prueba. \ nAdiós!

En lugar de eso quieren que el correo electrónico se parezca a esto:

Hola Juan,

Este es un mensaje de prueba.
¡Adiós!

¿Alguien sabe cómo lograr esto? ¡Gracias!

+0

Hola, ¿Has encontrado otra forma de hacer ini que usar comillas dobles? – dextervip

Respuesta

12

Qué acerca del uso de comillas dobles cerca de sus valores, y el uso de las nuevas líneas reales, así:

message = "Hi {0}, 

This is a test message. 
Goodbye!" 


A modo de ejemplo, el uso de esta porción de código:

$config = new Zend_Config_Ini(APPLICATION_PATH . '/config/application.ini'); 
var_dump($config->production->testmessage); 
die; 

Con application.ini que contiene esto:

[production] 

testmessage = "this is 
a new 
message" 

I obtener la siguiente salida de mi var_dump:

string(21) "this is 
a new 
message" 
1

usar PHP constante: PHP_EOL

message = "Hi {0}," PHP_EOL PHP_EOL "This is a test message." PHP_EOL "Goodbye!" 

Tenga en cuenta que la PHP_EOL constante en application.ini debe aparecer fuera de las comillas. De lo contrario, se interpretará como un literal.

Cuestiones relacionadas