我认为有时使用php标签而不是echo更容易
<?
if()
echo "<img src='' onclick='alert(\"hello\")'/>";
?>
而不是像我这样的代码
<?
if(){
?>
<img src='' onclick='alert("hello")'/>
<?}
?>
我们摆脱了反弹。但是我想要的字符串怎么样:
<?
$str="?>
<img src='' onclick='alert("hello")'/>
<?";
?>
答案 0 :(得分:6)
您应该使用the PHP heredoc syntax:
<?php
$str = <<<IMGTAG
<img src="" onclick="alert('hello')"/>
IMGTAG;
echo $str;
?>
享受您的代码。
答案 1 :(得分:1)
这种阵型专门有alternative Syntax:
<?php if (x): ?>
<div>...</div>
<?php endif; ?>
还有短标签:
<?= "hello world" ?>
这直接打印一个字符串,等于:
<?php echo "hello world" ?>
对于字符串赋值,您可以执行Magicianred sugested。您也可以使用输出缓冲来执行此操作:
<?php ob_start(); ?>
<div>test</div>
<?php
$str = ob_get_contents();
ob_end_clean();
echo $str;
?>
虽然输出缓冲不应该被滥用。 Heredoc语法是最好的解决方案。