¿Cómo puedo escapar de un carácter de nueva línea en un archivo .ini para que Zend_Config_Ini lee literalmente?
-
21-09-2019 - |
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!
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.