2010-03-19 38 views
8

Tôi đang cố lưu một e-mail nhiều dòng trong một tệp ini bằng cách sử dụng PHP/Zend Framework. Chuỗi của tôi có các ký tự dòng mới trong đó và khi tôi sử dụng Zend_Config_Ini để phân tích cú pháp tệp ini, các ký tự dòng mới sẽ bị thoát, vì vậy chúng được in ra trên màn hình thay vì nguồn cấp dữ liệu dòng.Làm cách nào để thoát khỏi ký tự dòng mới trong tệp .ini để Zend_Config_Ini đọc nó theo nghĩa đen?

Ví dụ:

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

được phân tách bởi Zend_Config_Ini như:

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

mà sau đó được in ra trong email như:

Hi John, \ n \ nCó là một kiểm tra tin nhắn. \ n Tạm biệt!

Thay vào đó tôi muốn các e-mail trông như thế này:

Hi John,

Đây là một thông báo test.
Tạm biệt!

Có ai biết cách đạt được điều này không? Cảm ơn!

+0

Xin chào, Bạn đã tìm thấy một cách khác để làm trong ini hơn bằng cách sử dụng dấu ngoặc kép? – dextervip

Trả lời

12

gì về việc sử dụng hai dấu ngoặc kép arround giá trị của bạn, và sử dụng dòng mới thật, như thế này:

message = "Hi {0}, 

This is a test message. 
Goodbye!" 


Như một ví dụ, sử dụng phần mã này:

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

Với application.ini chứa nội dung này:

[production] 

testmessage = "this is 
a new 
message" 

I nhận được đầu ra sau đây từ var_dump tôi:

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

Sử dụng php liên tục: PHP_EOL

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

Lưu ý rằng PHP_EOL liên tục trong application.ini phải xuất hiện bên ngoài của dấu ngoặc kép. Nếu không nó sẽ được hiểu là chữ.

Các vấn đề liên quan