sql >> データベース >  >> RDS >> Mysql

ヒアドキュメント/nowdoc構文のエコー

    これはあなたがやろうとしていたことだと思います。少し見苦しいです:

    $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
    );
    

    ヒアドキュメントの開始は必須 行の最後になるので、その後ドロップダウンしてすぐにテキストブロックに入ります。ヒアドキュメントの終わりは必須 行上の唯一のものであるため、それを連結するには、演算子(.を使用する前に行をドロップダウンする必要があります )。また、ヒアドキュメント内で引用符を使用したり、演算子を追加したりする必要はありません。

    実際、これは非常に直感的ではないため、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
    );
    

    作成したもの:

    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>
    

    あなたのデータで見栄えが良くなると確信していますが。

    編集:そして Blizz rec_messageを保存すると、以下を非常に正確に指摘します。 変数に変換すると、連結を完全に回避できます:

    $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
    );
    

    編集2 :追加のメッセージがある場合は、次のようなものを使用してメールを簡素化する必要があります:

    $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
    );
    ?>
    

    基本的なダミーテキストを使用すると、次のようになります。

    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
    



    1. MySQL-一定期間内にmySQLデータベースをバックアップすることは可能ですか?

    2. UNIQUEKEYに違反したときに行のIDを取得する

    3. 日付フィールドに対して日時フィールドを照会するための最良の方法は何ですか?

    4. 監査目的でデータベーステーブルの複数の列の変更を追跡するにはどうすればよいですか?