首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回音未转义的HTML

回音未转义的HTML
EN

Stack Overflow用户
提问于 2019-03-23 03:03:55
回答 2查看 93关注 0票数 2

非常不寻常的问题。

在过去的几年里,我遇到了一些代码,这些代码包括条件和正常的PHP语法,同时回显所有内容。

我的问题是,这种技术/语法是如何被调用的。我已经谷歌了一些非常宽泛的条款,并没有找到什么我寻找。

如果我的内存是正确的,我很久以前看过的代码没有转义的HTML,它不需要用<?php ?>启动和停止PHP处理。

我在一个名为Template\Labels::User()的类中有一个方法,该方法的唯一目的是回显适当的html,在我的webapp中创建一个标签,这样页面就可以减轻代码,并且对任何查看代码的人来说都是清晰的。

我想避免,不得不用<?php ?>来获取非常简单的boolean if

有人知道我在找什么吗?

代码语言:javascript
复制
static function User($UserObj,$isLink = true){
    ?>
    <div class="image label bg-purple" style="margin: 4px;">
        <?php if($isLink){
            ?><a href=""><?php
        } ?>
        <img src="<?php echo $UserObj -> ProfilePicture; ?>" style="height: 2em;" class="img-circle" alt="User Image">
        <label style="font-size: 90%"><?php echo $UserObj->FirstName{0}.$UserObj->LastName{0}; ?></label>
        <?php if($isLink){
            ?></a><?php
        } ?>
    </div>
    <?php
}

编辑过的

在进一步研究了关于操作符的PHP文档之后,我发现了Nowdoc字符串引用

有人能给Nowdocs are to single-quoted strings what heredocs are to double-quoted strings. A nowdoc is specified similarly to a heredoc, but no parsing is done inside a nowdoc. The construct is ideal for embedding PHP code or other large blocks of text without the need for escaping. It shares some features in common with the SGML一点启示吗?

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc

EN

回答 2

Stack Overflow用户

发布于 2019-03-23 03:55:45

很好,你在你的问题中添加了代码,这样我们就可以看到你在这里处理的是什么。现在,我对您的问题的理解是,您希望避免使用php标记来根据if条件回显一些html代码。

代码语言:javascript
复制
<?php 
    static function User($UserObj,$isLink = true){
        $html = '<div class="image label bg-purple" style="margin: 4px;">';
        if($isLink) $html .= '<a href="">';
        $html .= '<img src="'.@$UserObj->ProfilePicture.'" style="height: 2em;" class="img-circle" alt="User Image">';
        $html .= '<label style="font-size: 90%">'.@$UserObj->FirstName[0].@$UserObj->LastName[0].'</label>';
        if($isLink) $html .= '</a>';
        echo $html;
    }
?>

在我的想法中,我认为您只需运行一次php标记,并使用一个简单的变量来添加您的html代码,以便您可以在函数的末尾打印。

票数 1
EN

Stack Overflow用户

发布于 2019-03-23 03:24:40

我不理解你的一些图片,但同样,你的问题是用PHP打印未转义的html。换句话说,您希望拥有原始的html。

我现在正在考虑两个函数,您可以根据需要的输出使用它们: html_entity_decode()和There实体()。

html_entity_decode()htmlentities()相反,因为它将字符串中的所有HTML实体转换为其适用的字符。

代码语言:javascript
复制
<?php     $orig = "I'll \"walk\" the <b>d
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll &quot;walk&quot
echo $b; // I'll "walk" the <b>
?>

参考文献:decode

我希望这有助于解决您的未转义html问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55310214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档