¿Cómo puedo escapar de un carácter de nueva línea en un archivo .ini para que Zend_Config_Ini lee literalmente?

StackOverflow https://stackoverflow.com/questions/2480091

Pregunta

Estoy tratando de almacenar un registro de varias líneas de correo electrónico en un archivo ini usando PHP Marco / Zend. Mi cadena tiene caracteres nuevas líneas en él, y cuando uso Zend_Config_Ini para analizar el archivo INI, los caracteres de nueva línea regresan escapó, por lo que se imprimen en la pantalla, en lugar de un avance de línea.

Ejemplo:

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

es analizada 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 un mensaje de prueba. \ NGoodbye!

En lugar Quiero que el e-mail a tener este aspecto:

Hola Juan,

Este es un mensaje de prueba.
Adiós!

¿Alguien sabe cómo lograr esto? Gracias!

¿Fue útil?

Solución

¿Qué pasa con el uso de las comillas dobles cerca de sus valores, y el uso de las nuevas líneas reales, como esto:

message = "Hi {0},

This is a test message.
Goodbye!"


Como ejemplo, usando 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 contiene esto:

[production]

testmessage = "this is
a new
message"

Me da la siguiente salida de mi var_dump:

string(21) "this is
a new
message"

Otros consejos

El uso constante de PHP: 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, va a ser interpretado como un literal.

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