在PHP中编写javascript代码时出现引号问题

时间:2011-12-16 02:34:49

标签: php javascript escaping quotes

我想知道将javascript代码编写成PHP变量的最佳方法是什么?

有时候javascript代码可能很长...有没有办法逃避所有引号?

<?php
echo '
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';

</script>'

?>

3 个答案:

答案 0 :(得分:3)

使用heredoc。例如:

$var = EOF<<<
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';
</script>
EOF;

EOF可以是您想要的任意字符串,它必须直接在<<<分隔符之后,并且在您要创建的字符串的两边匹配。

答案 1 :(得分:1)

答案很简单,不要混用PHP代码和HTML / JavaScript,如果需要,请用?>结束PHP块,然后在HTML / JS后用<?php再次打开它块。

如果你在变量中需要它,你可以使用输出缓冲但是使用Heredoc / Nowdoc字符串:

<?php
$foo = <<<FOOBAR
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
    a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';
</script>

FOOBAR;
?>

答案 2 :(得分:1)

只是做:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';

</script>

如果你在某处需要php:

a_div.innerHTML = '<iframe style="width:<?php echo $width; ?>;height:300px;" id="iframe_upload" src="index.php">';