【问题标题】:using php to encode characters for mailto in javascript?使用 php 在 javascript 中为 mailto 编码字符?
【发布时间】:2011-11-16 17:44:20
【问题描述】:

我正在使用window.location.href = 'mailto:?body=visit @987654321@';

效果很好,但链接的建立方式是window.location.href = 'mailto:?body=<?php echo $content; ?>';

现在这工作正常,除非 $content 包含 ' 或类似的东西会破坏代码。

我怎样才能做到这一点?

【问题讨论】:

    标签: php javascript quotes mailto


    【解决方案1】:

    您可能想使用addslashes,它会转义引号。

    【讨论】:

      【解决方案2】:

      使用rawurlencode 函数[php docs] 对输入中任何在 URL 中无效的字符进行编码。

      <?php $content = "Hello, this' an...\n\nexample!"; ?>
      window.location.href = "mailto:?body=<?php echo rawurlencode($content); ?>";
      
      输出:
      window.location.href = "mailto:?body=Hello%2C%20this%27%20an...%0A%0Aexample%21";
      

      确实,当您将某些内容放在带引号的字符串中时,您通常希望使用addslashes[php docs]。在这种情况下,它不会产生任何影响,因为rawurlencode 的输出没有任何需要用斜杠转义的字符。

      【讨论】:

        【解决方案3】:

        使用rawurlencode():

        window.location.href = 'mailto:?body=<?php echo rawurlencode($content); ?>';
        

        【讨论】:

          猜你喜欢
          • 2014-07-24
          • 2012-05-27
          • 2016-07-15
          • 2011-10-09
          • 2011-08-01
          • 1970-01-01
          • 2012-03-25
          • 1970-01-01
          • 2012-10-12
          相关资源
          最近更新 更多