我有一个PHP字符串:
$str = '';
我需要在此处使用一些HTML,但HTML在引号内引用了引号'。如何应对这种情况呢?
HTML是:
data-setup="{'example_option':true}"
答案 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)。