0

人们可以正常查看我的网站,但 Google 收到 500 错误。我打开了所有错误报告,我得到了这个:意外的'{',期待','或';' 在第 6 行。

翻了好几遍,没发现有什么不对。希望有人可以提供帮助。如果我选择第 5 行,即 $(\'#js_terms_of_use\').click(function() 并删除这两个 \',第 6 行的错误就会消失,但我逃脱了它们,所以我不明白问题是什么. 这是代码:

echo '
<script type=\"text/javascript\">
$Behavior.termsAndPrivacy = function()
{
    $(\'#js_terms_of_use\').click(function()
    {
        '; ?>

        tb_show('<?php echo extras::getPhrase('user.terms_of_use', array('extras_squote' => true)); ?>', $.ajaxBox('page.view', 'height=410&width=600&title=terms')); 
        <?php echo '
        return false;
    });

    $(\'#js_privacy_policy\').click(function()
    {
        '; ?>

        tb_show('<?php echo extras::getPhrase('user.privacy_policy', array('extras_squote' => true)); ?>', $.ajaxBox('page.view', 'height=410&width=600&title=policy')); 
        <?php echo '
        return false;
    });
}
</script>
';
4

2 回答 2

3

默认情况下,标签之外的任何内容都会<?php ?>被回显。使用它对您有利。多行单引号字符串是个坏主意。这是清理代码的尝试:

<?php 
$TOU  = extras::getPhrase('user.terms_of_use', array('extras_squote' => true));
$priv = extras::getPhrase('user.privacy_policy', array('extras_squote' => true));
?>
<script type="text/javascript">
$Behavior.termsAndPrivacy = function()
{
    $('#js_terms_of_use').click(function()
    {
        tb_show('<?php echo $TOU ?>', $.ajaxBox('page.view', 'height=410&width=600&title=terms')); 
        return false;
    });

    $('#js_privacy_policy').click(function()
    {
        tb_show('<?php echo $priv ?>', $.ajaxBox('page.view', 'height=410&width=600&title=policy')); 
        return false;
    });
}
</script>
于 2012-09-05T01:33:24.983 回答
1

如果您确实需要从 PHP 中的单个 echo 输出多行,请使用 heredoc 语法(如果可用,请使用 newdoc 语法)。如需复习,请访问php.net

于 2012-09-05T01:37:01.223 回答