PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-在heredoc / nowdoc语法中回显大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_874_0@我一直在阅读Heredoc和Nowdoc语法,并且试图了解如何突破该语法,以便添加其他功能.

@H_874_0@我想在这部分之后(如果可能)进行介绍:

@H_874_0@
User::sendNewticket($send_to, 'Maintenance Ticket '.Input::get('st_id'),
@H_607_7@
@H_874_0@但是当我添加?>时抛出语法错误.在“维修票”之后.Input:: get(‘st_id’),?>

@H_874_0@无论如何,我暂时放弃了这一点,如果我能弄清楚如何使用这种语法来回显以下内容,那将是一件好事:

@H_874_0@
'.$fn.'<br>
'.$time.'<br>
'.$stc.'<br>
@H_607_7@
@H_874_0@类似于此回显$fn;

@H_874_0@这是与我的情况有关的代码.

@H_874_0@
<?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');
}
?>
@H_607_7@
@H_874_0@我想做的是通过电子邮件支持票证对话发送给一个收件人.
像这样:

@H_874_0@我从消息$_POST收到“原始消息”.以及来自新数据$_POST的电子邮件地址和电子邮件.

@H_874_0@对于对话,我试图从数据库表中提取该信息.

@H_874_0@我当前的代码通过电子邮件发送对话,但是以多封电子邮件通过电子邮件发送每个对话.

@H_874_0@例如,如果对话中有3个条目,它将发送3封电子邮件

@H_874_0@>电子邮件1包含:管理员回复1
>电子邮件2包含:用户回复1
>电子邮件3包含:管理员回复2

@H_874_0@我认为,如果我得到了回应,它将把整个对话分组为一封电子邮件.

@H_874_0@这是我尝试获得的最终电子邮件输出的示例:

@H_874_0@你好 –

@H_874_0@嘿,请查看这张票并解决问题.
谢谢

@H_874_0@门票信息:

@H_874_0@>状态:OPEN
门票编号:201406016
>发表者:用户名
>发表于:2014年6月27日-03:46 pm
>建筑单位:D47
>主题:1
>票务消息:1

@H_874_0@会话:

@H_874_0@支持团队

@H_874_0@2014年7月1日-上午09:19

@H_874_0@管理员回复1

@H_874_0@用户名

@H_874_0@2014年7月1日-上午09:19

@H_874_0@用户回复1

@H_874_0@支持团队

@H_874_0@2014年7月1日-上午09:19

@H_874_0@管理员回复2

@H_874_0@谢谢,

@H_874_0@支持团队

@H_874_0@END电子邮件示例

@H_874_0@任何的意见都将会有帮助.

@H_874_0@更新

@H_874_0@我开始对此有所了解.我收到的唯一错误是在我的foreach循环中,不确定如何纠正它.

@H_874_0@这是代码

@H_874_0@
$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

?>
@H_607_7@

解决方法:

@H_874_0@我相信这是您打算做的事情,看起来有点尴尬:

@H_874_0@
$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
);
@H_607_7@
@H_874_0@Heredoc的开头必须是一行中的最后一件事,因此在此之后,您可以下拉列表并立即进入文本块. Heredoc的末尾必须是该行的唯一内容,因此要进行连接,必须先下拉一行,然后才能使用运算符(.).在Heredoc中时,您也不需要使用任何引号或追加运算符.

@H_874_0@实际上这是如此不直观,以至于即使StackOverflow语法荧光笔也弄错了,当我运行此命令时,第一个<<< TEXT仍然可以正常工作:

$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
);
@H_607_7@
@H_874_0@它产生了:

@H_874_0@
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>
@H_607_7@
@H_874_0@然我敢肯定您的数据会更好.

@H_874_0@编辑:正如下面Blizz非常正确地指出的那样,如果将rec_message保存到变量中,则可以完全避免串联:

@H_874_0@
$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
);
@H_607_7@
@H_874_0@编辑2:对于多余的消息,您应该使用类似以下的方法来简化电子邮件

@H_874_0@
$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
);
?>
@H_607_7@
@H_874_0@哪些带有一些基本的伪文本会产生:

@H_874_0@
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
@H_607_7@

大佬总结

以上是大佬教程为你收集整理的php-在heredoc / nowdoc语法中回显全部内容,希望文章能够帮你解决php-在heredoc / nowdoc语法中回显所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: