使用PHP转义复杂的字符串

时间:2011-03-30 23:12:50

标签: php

我有一个这样的字符串:

<form action='php/zoneNotifUnsub.php' id='zoneNotifUnsub' method='POST'>
    <?php
       echo $var;
    ?>
</form>

我希望用PHP来回应它,并让它看起来与上面完全一样。

我从这开始:

echo '<form action='php/zoneNotifUnsub.php' id='zoneNotifUnsub' method='POST'>
    <?php
       echo $var;
    ?>
</form>';

但内部的额外单引号引起了我的问题。如何获得字符串打印的确切逐字输出(以便不解析任何变量且不运行代码)?

4 个答案:

答案 0 :(得分:3)

Normal Escaping看起来像这样:

echo '<form action=\'php/zoneNotifUnsub.php\' id=\'zoneNotifUnsub\' method=\'POST\'>
    <?php
       echo $var;
    ?>
</form>';

使用反斜杠转义每个'。重温一下how strings work look in the manual page

你也可以选择看起来更好一点的HEREDOC Syntax

echo <<<OUT
<form action='php/zoneNotifUnsub.php' id='zoneNotifUnsub' method='POST'>
    <?php
       echo $var;
    ?>
</form>
OUT;

答案 1 :(得分:2)

您还可以对要回显的内容使用双引号。

所以:'<form action="php/zoneNotifUnsub.php" id="zoneNotifUnsub" method="POST">';等等。

答案 2 :(得分:1)

尝试逃避它们

echo '<form action=\'php/zoneNotifUnsub.php\' id=\'zoneNotifUnsub\' method=\'POST\'>
    <?php
       echo $var;
    ?>
</form>';

答案 3 :(得分:1)

在这种情况下,使用双引号可能是一个选项:

echo "<form action='php/zoneNotifUnsub.php' id='zoneNotifUnsub' method='POST'>
    <?php
       echo $var;
    ?>
</form>";