【问题标题】:How to encode URL in JavaScript and PHP?如何在 JavaScript 和 PHP 中编码 URL?
【发布时间】:2010-02-25 07:42:27
【问题描述】:

我想在一个名为 surl 的变量中的 POST 请求中发送一个 URL。我应该如何在 JavaScript 中对其进行编码并在 PHP 中对其进行解码?例如surl 的值可以是http://www.google.co.in/search?q=javascript+urlencode+w3schools

编辑

对不起,我忘了说,不是表单提交,而是ajax请求。

【问题讨论】:

    标签: php javascript url urlencode decode


    【解决方案1】:

    你不需要做任何事情。按原样发送。浏览器和 PHP 将为您完成所有转义和取消转义(如果您使用 form.surl.value = surl; form.submit()$_POST['surl'])。或者您可以只使用没有任何 JavaScript 的普通表单(如果它满足您的需求)。

    回复 henasraf 的评论。试试这个。

    <form id="form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"
        onsubmit="this.via_js.value=this.via_plain_form.value;">
    <input type="hidden" name="via_js"/>
    <input type="text" name="via_plain_form" value="Paste you url here"/>
    <input type="submit" name="submit" value="Submit"/>
    </form>
    
    <?php
    
    if (isset($_POST['submit'])) {
        var_export($_POST);
    }
    
    ?>
    

    对于http://www.google.co.in/search?q=javascript+urlencode+w3schools,它输出

    array (
        'via_js' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
        'via_plain_form' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
        'submit' => 'Submit',
    )
    

    【讨论】:

    • 如果我错了,请纠正我,但 URL 中的 + 会算作空格,不是吗? PHP 不会修复它我敢肯定,它 修复常规空格并将它们变成“+”符号,反之亦然,但要添加文字 + 你必须使用 @987654326 @。我认为这也适用于其他情况。
    • PHP 或浏览器不关心您是否传输 URL 或其他内容。 URL 被视为任何其他表单数据。浏览器转义表单数据中的所有花哨字符,传输数据,而 PHP 在另一端对它们进行转义。
    【解决方案2】:

    使用encodeURIComponent(uri)(用于编码)和decodeURIComponent(uri)用于解码,

    例如(编码)。

    var uri="http://w3schools.com/my test.asp?name=ståle&car=saab";
    document.write(encodeURIComponent(uri));
    

    输出

    http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab

    解码留给读者。 :-)

    来源:http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp

    【讨论】:

      【解决方案3】:

      对于 PHP,它是 urlencode()urldecode()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多