如何在php中回显脚本

时间:2012-08-07 11:39:35

标签: php

我在wordpress中使用短代码执行插件。

这只允许我编写像[email_spamproof]

这样的短代码

但我试图回应一个剧本。请看下面......

<?php

echo '<script type="text/javascript">
    <!-- 
    // spam protected email
    emailE=("enquiries@" + "example.co.uk")
    document.write('<a title="E-mail Example" href="mailto:' + emailE + '">' + emailE + '</a>')
     //-->
    </script>
    <noscript>
        <span class="spam-protected">Email address protected by JavaScript. Please enable JavaScript.</span>
    </noscript>';

?>


现在你可能已经看到了我的问题。

通常当我回复东西时,它会像这样... echo 'hello';

然后使用相同的撇号打破字符串 - 像这样......
echo 'hello ' . php_name() . ' and friends'

我的问题

该脚本还通过在字符串中添加脚本变量来使用类似的方法,但这些脚本撇号将混淆为PHP撇号,并打破回显的字符串。

我该如何避免这种情况?

由于

6 个答案:

答案 0 :(得分:2)

\字符是转义字符。在用于分隔字符串的字符的每个内部使用前加一个。

或者,使用HEREDOC

答案 1 :(得分:2)

很容易。将您的javascript代码保存在一个新文件中,然后使用它来加载它:

include('myjavascript.php');

然后,您将使用include选项作为echo,因为网络会将您的代码理解为HTML,并且您可以根据需要php执行该代码(例如echo )。

答案 2 :(得分:2)

正确的代码:

<?php

echo "<script type='text/javascript'>
    <!-- 
    // spam protected email
    emailE=('enquiries@' + 'example.co.uk')
    document.write('<a title='E-mail Example' href='mailto:' + emailE + ''>' + emailE + '</a>')
     //-->
    </script>
    <noscript>
        <span class='spam-protected'>Email address protected by JavaScript. Please enable JavaScript.</span>
    </noscript>";

?>

答案 3 :(得分:0)

你可以在你的javasript代码中编写,然后在你的php echo中只使用单引号(')。

更合适方法是在您的javascript代码“ \'”中使用转义字符(不带双引号)

答案 4 :(得分:0)

你需要转义它们然后连接变量:

(我也不知道你是否意识到,但你正在回应javascript的注释部分)

echo '<script type="text/javascript">    
  <!--      // spam protected email     
  emailE=("enquiries@" + "example.co.uk")     
  document.write(\'<a title="E-mail Example" href="mailto:'.emailE.'">'.emailE.'</a>\')      
  //-->     
  </script>     
  <noscript>         
  <span class="spam-protected">Email address protected by JavaScript. Please enable JavaScript.</span>     
  </noscript>'; 

答案 5 :(得分:0)

您可以使用反斜杠转义它们:echo 'It\'s cold';或使用heredoc

echo <<<END
lots of text here
END;