非常不寻常的问题。
几年来,我遇到了一些代码,其中包含条件和正常的PHP语法,同时回显了所有内容。
我的问题是该技术/语法是如何调用的。我一直在搜索一些非常宽泛的术语,找不到我正在寻找的东西。
如果我的记忆正确,那么我很久以前查看的代码未转义HTML,并且不需要使用<?php
?>
我在名为Template\Labels::User()
的类中有一个方法
该方法的唯一目的是回显正确的html,以在我的Web应用程序中创建标签,从而使页面的代码变浅,并且对查看该代码的任何人都清晰可见。
我想避免,我不得不<?php
?>
来boolean
if
有人知道我在找什么吗?
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
}
已编辑
通过对Operator的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
答案 0 :(得分:1)
最好在您的问题中添加代码,以便我们在这里都能看到您正在处理的内容。现在对我来说,我对您的问题的理解是,您希望避免使用php标签根据if条件回显一些html代码。
<?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 :(得分:0)
我听不懂您的某些图片,但同样的问题是在PHP中打印未转义的html。换句话说,您想要原始的html。
目前正在考虑使用两个函数,您可以根据所需的输出使用它们: html_entity_decode()和 htmlentities()。
html_entity_decode()与 htmlentities()相反,它可以将字符串中的所有HTML实体转换为适用的字符。
<?php $orig = "I'll \"walk\" the <b>d
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk"
echo $b; // I'll "walk" the <b>
?>
参考:http://www.php.net/html_entity_decode
我希望这有助于解决您的未转义html问题。