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

时间:2013-06-27 12:04:07

标签: php urlencode

我正在尝试将百分号(%)传递给网址,如

%B6011000995504101^SB

但是当我回音时,它会返回

♦011000995504101^SB

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

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

%B6011000995504101%5ESB

请帮我解决这个问题

2 个答案:

答案 0 :(得分:56)

答案:

要在网址中发送%符号,请发送%25

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

为什么:

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

答案 1 :(得分:3)

在将一个原始字符串包含在URL中之前,最好通过urlencode传递它,如下所示:

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

$updated=urlencode($original);

echo "<a href=\"some_page.php?$updated\">Link here</a>";
?>

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

<?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>";
?>

(将文件命名为 urlencode.php