在网址中传递百分号(%),并使用php获取它的确切值

Sum*_*ani 27 php urlencode

我试图将百分号(%)传递给url

%B6011000995504101^SB
Run Code Online (Sandbox Code Playgroud)

但当我回声时,它会回来

?011000995504101^SB
Run Code Online (Sandbox Code Playgroud)

我想要在URL中传递完全相同的值.

我试过使用urlencode()函数,但它给我这样的输出...

%B6011000995504101%5ESB
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题

Ian*_*ney 64

回答:

%在网址中发送签名,请发送%25.

在您的情况下,为了让php看到百分号,您必须将字符串传递%25B6011000995504101^SB给服务器.

为什么:

在URL中,百分号具有特殊含义.用于编码特殊字符.例如,&是参数之间的分隔符,因此如果您希望参数实际包含一个&,则改为编写%26.因为百分号用于编码特殊字符,所以它也是一个特殊字符,因此如果要实际发送百分号,也必须对其进行编码.百分号的编码是%25.

  • 它又增加了25个,例如%2525 (2认同)

小智 5

在 URL 中包含原始字符串之前,最好像这样通过 urlencode 传递它:

<?php
$original='%B6011000995504101^SB';

$updated=urlencode($original);

echo "<a href=\"some_page.php?$updated\">Link here</a>";
?>
Run Code Online (Sandbox Code Playgroud)

接收页面会知道该怎么做 - 在您的网络服务器上试试这个例子:

<?php

if($_GET['argument']) {
    echo "<p>You passed in the argument &quot;$_GET[argument]&quot;</p>";
}else {
    echo "<p>No argument was passed.</p>";
}
$original='%B6011000995504101^SB';

$updated=urlencode($original);

echo "<a href=\"urlencode.php?argument=$updated\">Link here</a>";
?>
Run Code Online (Sandbox Code Playgroud)

(命名文件urlencode.php