Como faço para escapar de um novo caractere de linha em um arquivo .ini para que Zend_Config_ini o lê literalmente?

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

Pergunta

Estou tentando armazenar um e-mail de múltiplas linhas em um arquivo ini usando a estrutura PHP/ZEND. Minha string possui novos caracteres de linhas e, quando eu uso o zend_config_ini para analisar o arquivo ini, os caracteres da nova linha voltam a escapar, para que sejam impressos na tela, em vez de um feed de linha.

Exemplo:

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

é analisado por zend_config_ini como:

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

que então é impresso no e -mail como:

Oi John, n é uma mensagem de teste. Ngoodbye!

Em vez disso, quero que o e-mail seja assim:

Oi John,

Esta é uma mensagem de teste.
Adeus!

Alguém sabe como conseguir isso? Obrigado!

Foi útil?

Solução

Que tal usar citações duplas prejudicar seus valores e usar novas linhas reais, como esta:

message = "Hi {0},

This is a test message.
Goodbye!"


Como exemplo, usando esta parte do código:

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

Com application.ini contendo isso:

[production]

testmessage = "this is
a new
message"

Eu recebo a seguinte saída do meu var_dump :

string(21) "this is
a new
message"

Outras dicas

Use PHP Constant: php_eol

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

Observe que o constante php_eol no application.ini deve aparecer fora das cotações. Caso contrário, será interpretado como literal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top