Tôi tin rằng đây là những gì bạn đang có ý định làm, nó trông hơi kinh dị:
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
Sự bắt đầu của một heredoc phải là thứ cuối cùng trên một dòng, vì vậy sau đó bạn thả xuống và ngay lập tức đi vào khối văn bản. Phần cuối của heredoc phải là thứ duy nhất trên dòng, vì vậy để nối nó, bạn phải thả xuống một dòng trước khi có thể sử dụng toán tử (.
). Bạn cũng không cần sử dụng bất kỳ dấu ngoặc kép nào hoặc thêm toán tử khi bên trong heredoc.
Trên thực tế, nó không trực quan đến mức ngay cả công cụ đánh dấu Cú pháp StackOverflow cũng nhầm, <<<TEXT
đầu tiên hoạt động tốt khi tôi chạy cái này:
$mt = new stdClass();
function escape($v){return $v;}
class User{static function sendNewTicket($a, $b, $c){echo $c;}}
class Input{static function get($a){return 'Got something';}}
$send_to = '';
$mt->from_name = 'Kitty';
$mt->st_time = '5th November';
$mt->st_content = <<<CONTENT
Dear Judy,
Lorem Dipsum and all that jazz.
Toodles,
Kitty.
CONTENT;
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
Nó được sản xuất:
Hello -<br><br>Got something<br><br>
<strong>Conversation:</strong><br><br>
Kitty<br>
November 05, 2014 - 12:00 am<br>
Dear Judy,<br />
<br />
Lorem Dipsum and all that jazz.<br />
<br />
Toodles,<br />
Kitty.<br>
Mặc dù tôi chắc chắn rằng dữ liệu của bạn sẽ trông đẹp hơn.
Chỉnh sửa:Và với tư cách là Blizz
chỉ ra rất chính xác bên dưới, nếu bạn lưu rec_message
vào một biến, bạn có thể tránh hoàn toàn việc nối:
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT
);
Chỉnh sửa 2 :Với các thư bổ sung, bạn nên sử dụng một cái gì đó như thế này để đơn giản hóa email:
$messages = '';
foreach($st_messages->results() as $mt)
{
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
$messages .= <<<MESSAGE
$fn<br>
$time<br>
$stc<br><br>
MESSAGE;
}
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<strong>Conversation:</strong><br><br>
$messages
Thanks,<br>
Support Team
TEXT
);
?>
Với một số văn bản giả cơ bản tạo ra:
Hello -<br><br>
Got something
<strong>Conversation:</strong><br><br>
Person<br>
November 11, 2014 - 12:00 am<br>
My message blah blah<br><br>
sdfasdf<br>
April 11, 2014 - 12:00 am<br>
My message asdfasdf blah blah<br><br>
Thanks,<br>
Support Team