【发布时间】:2014-08-22 19:22:50
【问题描述】:
我一直在阅读 Heredoc 和 Nowdoc 语法,我正在尝试了解如何摆脱它,以便添加其他功能。
我想在这部分之后打破它(如果可能的话):
User::sendNewticket($send_to, 'Maintenance Ticket '.Input::get('st_id'),
但是当我在'Maintenance Ticket '.Input::get('st_id'), ?> 之后添加?> 时会引发语法错误
无论如何,我暂时放弃了,如果我能弄清楚如何使用这种语法回显以下内容,我会很高兴:
'.$fn.'<br>
'.$time.'<br>
'.$stc.'<br>
类似于这个echo $fn;
这是与我的情况相关的代码。
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/core/init.php");
// new data
$send_to = $_POST['send_to'];
$rec_message = $_POST['rec_message'];
//Message
$status = $_POST['status'];
$st_id = $_POST['st_id'];
$posted_by = $_POST['posted_by'];
$posted_on = $_POST['posted_on'];
$unit = $_POST['unit'];
$subject = $_POST['subject'];
$content = $_POST['content'];
//Loader & Flash Message
echo '<meta http-equiv="refresh" content="5;URL=/admin/maintenance/email-ticket.php?st_id='.$st_id.'">';
Session::flash('email-ticket', '<h3 class="orange-tx" align="center">Your Email has been sent!</h3>');
//Replies
//$id = $_POST['id'];
//$from_name = $_POST['from_name'];
//$st_time = $_POST['st_time'];
//$st_content = $_POST['st_content'];
//Pulling Conversation from database
$st_messages = DB::getInstance()->query("SELECT `id`,`st_id`,`from_name`,`st_content`,`st_time` FROM `st_messages` WHERE `st_id` = $st_id ORDER BY id ASC");
foreach ($st_messages->results() as $mt) {
if($mt->from_name=='Support Team'){
} else {
}
$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'),
'Hello -<br><br>
'.Input::get('rec_message').'<br><br>
<strong>Ticket Info:</strong><br><br>
<strong>Status: </strong>'.Input::get('status').'<br>
<strong>Ticket #: </strong>'.Input::get('st_id').'<br>
<strong>Posted By: </strong>'.Input::get('posted_by').'<br>
<strong>Posted On: </strong>'.Input::get('posted_on').'<br>
<strong>Building Unit: </strong>'.Input::get('unit').'<br>
<strong>Subject: </strong>'.Input::get('subject').'<br>
<strong>Ticket Message: </strong>'.Input::get('content').'<br><br>
<strong>Conversation:</strong><br><br>
'.$fn.'<br>
'.$time.'<br>
'.$stc.'<br>
---------------------------------<br><br>
Thank You,<br>
Support Team');
}
?>
我正在尝试将支持票证对话通过电子邮件发送给一位收件人。 像这样:
我从消息 $_POST 中收到“原始消息”。以及来自新数据 $_POST 的电子邮件地址和电子邮件消息。
为了对话我正在尝试从数据库表中提取该信息。
我当前的代码通过电子邮件发送对话,但在多封电子邮件中通过电子邮件发送每个对话。
例如,如果对话中有 3 个条目,它会发送 3 封电子邮件:
- 电子邮件 1 包含:管理员回复 1
- 电子邮件 2 包含:用户回复 1
- 电子邮件 3 包含:管理员回复 2
我认为,如果我让 echo 工作,它会将整个对话分组到一封电子邮件中。
这是我尝试获得的最终电子邮件输出示例:
你好-
嘿,请查看这张票并解决问题。 谢谢
票务信息:
- 状态:打开
- 票号:201406016
- 发布者:用户名
- 发布于:2014 年 6 月 27 日 - 下午 3:46
- 建筑单元:D47
- 主题:1
- 票务信息:1
对话:
支持团队
2014 年 7 月 1 日 - 上午 09:19
管理员回复 1
用户名
2014 年 7 月 1 日 - 上午 09:19
用户回复 1
支持团队
2014 年 7 月 1 日 - 上午 09:19
管理员回复 2
谢谢,
支持团队
END 电子邮件示例
任何建议都会有所帮助。
更新
我开始更好地理解这一点。我收到的唯一错误是在我的 foreach 循环中不知道如何纠正它。
代码如下:
$st_messages = DB::getInstance()->query("SELECT `id`,`st_id`,`from_name`,`st_content`,`st_time` FROM `st_messages` WHERE `st_id` = $st_id ORDER BY id ASC");
//START EMAIL
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket '.Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
TEXT
foreach ($st_messages->results() as $mt) {
$fn = "echo escape ($mt->from_name);";
$time = "echo escape (date(\"F d, Y - h:i a\", strtotime ($mt->st_time)));";
$stc = "echo nl2br (escape($mt->st_content));";
}
<<<TEXT2
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br><br>
Thanks,<br>
Support Team
);
TEXT2
?>
【问题讨论】: