首页 > 解决方案 > 如何将内联 HTML 定向到变量?

问题描述

此 PHP 代码向用户输出 HTML。

    <div class="whole">
        <input type="hidden" class="hid" name="hid" value="<?php echo $datum['id']; ?>">
        <div class="col1">  <div class="d1" id="naam<?php echo $datum['id']; ?>"><?php echo $datum['name']; ?></div>        
        </div>
        <div class="col2">  <div class="d2" id="email<?php echo $datum['id']; ?>"><?php echo $datum['email']; ?></div>

        </div>
        <div class="col3">  <div class="d3" id="state<?php echo $datum['id']; ?>"><?php echo $datum['state']; ?></div>

        </div>
        <div class="col4">  <div class="d4" id="gender<?php echo $datum['id']; ?>"><?php echo $datum['gender']; ?></div>

        </div>
        <div class="col5">  <div class="d5" id="lang<?php echo $datum['id']; ?>"><?php echo $datum['lang']; ?></div>

        </div>
        <div class="col6">
            <?php
                echo "<a href='images/".$datum['image']."' data-lightbox='picbox' data-title='".$datum['image']."'> <img src='images/".$datum['image']."'></a>";
            ?>
        </div>
    </div>

我不想将此输出发送给用户,而是希望它在变量中$output。我怎样才能做到这一点?

标签: phpstringio-redirection

解决方案


使用heredoc 语法,如下所示:

$output = <<<ANY_IDENTIFIER_THAT_DOES_NOT_APPEAR_IN_THE_TEXT_HERE
<div class="whole">
    <input type="hidden" class="hid" name="hid" value="{$datum['id']}">
    <div class="col1">  <div class="d1" id="naam{$datum['id']}">{$datum['name']}</div>        
    </div>
    <div class="col2">  <div class="d2" id="email{$datum['id']}">{$datum['email']}</div>

    </div>
    <div class="col3">  <div class="d3" id="state{$datum['id']}">{$datum['state']}</div>

    </div>
    <div class="col4">  <div class="d4" id="gender{$datum['id']}">{$datum['gender']}</div>

    </div>
    <div class="col5">  <div class="d5" id="lang{$datum['id']}">{$datum['lang']}</div>

    </div>
    <div class="col6">
        <a href='images/{$datum['image']}' data-lightbox='picbox' data-title='{$datum['image']}'> <img src='images/{$datum['image']}'></a>
    </div>
</div>
ANY_IDENTIFIER_THAT_DOES_NOT_APPEAR_IN_THE_TEXT_HERE;

最后一部分必须与开头的标识符完全相同,不缩进并后跟分号。

另外,请注意我取出了所有<?php ?>部分,并用{$datum['image']}访问替换它们(除非我错过了一个)。PHP 中的 Heredocs 的工作"double quoted strings"方式与".

有关详细信息,请参阅有关字符串语法的 PHP 文档


推荐阅读