引号内的引号 - 作为字符串?

时间:2014-10-06 11:52:35

标签: php

我有一个PHP字符串:

$str = '';

我需要在此处使用一些HTML,但HTML在引号内引用了引号'。如何应对这种情况呢?

HTML是:

data-setup="{'example_option':true}"

3 个答案:

答案 0 :(得分:1)

要处理引号内的引号,你需要像这样对它们进行转义:

echo "<a href=\"somelink.html\">Link</a>";

简单地说:

\" tells php to simply echo out the " as a quote instead of handling it as a part of the code.

你的字符串:

$string = "data-setup=\"{'example_option':true}\""
echo $string;
// Output:
data-setup="{'example_option':true}"

答案 1 :(得分:0)

您也可以使用HEREDOC

<?php
$html = <<<EOD
        data-setup="{'example_option':true}"
EOD;

echo $html;

答案 2 :(得分:0)

您希望通过data-attribute将一些数据从PHP传递到视图。我建议您使用json_encode并将您的数据构建为普通的PHP数组,而不是担心转义引号或其他令人讨厌的东西。

<html>
    <head>
        <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    </head>
    <body>
        <?php

            $data = array(
                  'example_option' => true,
                  'some_html'      => '<b>"Hello & good day!"</b>',
                );

            // avoid escaping from the JS parser
            $str = json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT);
            ?>

        <a data-setup='<?php echo $str; ?>' href="#">This link has awesome data</a>
    </body>
</html>

然后你可以非常轻松地访问数据属性(我在这里做了一个很大的假设,你使用的是jQuery)。