在PHP中用双引号输出数据的好习惯是什么?

时间:2014-06-15 19:02:19

标签: php html escaping

我有一些html文本,想把它放到一个变量中。

注意:我在这里不能使用?> .... <?,我需要变量中的html。

问题在于引号符号 - "。我希望我的HTML会与"一起使用,而不是',所以我无法使用此功能:

$var = "some 'name'";

我无法使用下一个代码,因为我想使用插值:

$var = 'name is "$name"'; // this code doesn't work. output is: name is "$name".

为了实现,我想要的,我可以使用它:

$var = "some \"$name\"";

这样可行,但它很愚蠢,特别是有大量的html文本,如下所示:

$results['main'] .= '
    <div class="col-xs-12">
        <div class="pull-right">
                <a href="/clients/add/" class="btn btn-default btn-success btn-lg" role="button"><span class="glyphicon glyphicon-plus"></span> Добавить клиента</a>
        </div>
    </div>
';

我需要在示例中转义12 "个符号。它一点也不好。

3 个答案:

答案 0 :(得分:0)

您可以像这样简单地断开变量字符串:

$results['main'] .= '
<div class="col-xs-12">
    <div class="pull-right">
            <a href="/clients/add/" class="btn" role="button">'.$name.'</a>
    </div>
</div>';

答案 1 :(得分:0)

使用PHP HEREDOC
您可以在HEREDOC开始之前声明您的变量,然后在文档中使用它们而不必担心双引号等等。因为我在您提供的html示例中没有看到您的变量。我已经做了一个例子。

$url = "<a href = 'http://google.com'>Google </a>";

$results['main'] .= <<<EOF
Here is a good website: $url. I hope you enjoy it
EOF;

答案 2 :(得分:-1)

如果您想要打印",请使用实体:&quote;

字符串中的所有引号都可以用str_replace替换为:

$myString = '';
foreach($someArrayWithStrings as $string) {
   $myString .= str_replace("\"","&quot",$string);
}

http://www.elizabethcastro.com/html/extras/entities.html