Почему escape-последовательность перевода строки не преобразуется в символ перевода строки? - PullRequest
4 голосов
/ 04 мая 2010

Я пытаюсь отправить электронное письмо с использованием codeigniter и хотел бы, чтобы сообщение занимало несколько строк.

$address = $this->input->post('email');
$subject = 'Please complete your registration';
$message = 'Thanks for registering! \n To complete your registration, please click on (or copy and paste in your browser) the following link: ' . base_url(). "users/confirmRegistration/" . $confirmation_code; //note the '\n' after thanks for registering

$this->load->library('email');
    $this->email->from('me@mysite.com', 'myname');
    $this->email->to($address); 
    $this->email->subject($subject);
    $this->email->message($message);    
    $this->email->send();

Я ожидаю, что письмо придет с разрывом строки после "Спасибо за регистрацию", но вместо этого я получу

Спасибо за регистрацию! n Чтобы завершить регистрацию (и т. д. и т. д.)

Я пробовал с \ r \ n, но результат почти такой же:

Спасибо за регистрацию! Чтобы завершить (и т. д.). Это как если бы была применена функция полоски.

Есть идеи?

Ответы [ 2 ]

17 голосов
/ 04 мая 2010

PHP не анализирует escape-последовательности, такие как \n внутри одинарных кавычек.

Вам необходимо заключить строку сообщения в двойные кавычки.

0 голосов
/ 01 мая 2012

Вам нужно набрать body в этом формате. Работает нормально. Рахул

$ body = 'Дорогой'. $ row-> fname. ''. $ row-> lname. ','. «

'. «Ваш аккаунт у нас временно отключен». , «

'. «Наша команда по связям с координаторами скоро свяжется с вами , «

'. «Вы также можете связаться с нами по адресу info@ggg.com». «

'. 'Теплые пожелания, ' . «

'. «Команда»;

...