在url中传递百分比(%)符号,并使用php获取其确切值
我正在尝试通过百分比(%)登录url,如在url中传递百分比(%)符号,并使用php获取其确切值,php,urlencode,Php,Urlencode,我正在尝试通过百分比(%)登录url,如 %B6011000995504101^SB 但当我回音时,它又回来了 ♦011000995504101^SB 我想要和我在URL中传递的值完全相同的值 我尝试过使用urlencode()函数,但它会给我这样的输出 %B6011000995504101%5ESB 请帮助我了解这一点回答: 要发送%登录url,请改为发送%25 在您的情况下,为了让php看到百分号,必须将字符串%25B6011000995504101^SB传递给服务器 为什么? 在UR
%B6011000995504101^SB
但当我回音时,它又回来了
♦011000995504101^SB
我想要和我在URL中传递的值完全相同的值
我尝试过使用urlencode()函数,但它会给我这样的输出
%B6011000995504101%5ESB
请帮助我了解这一点回答:
要发送%
登录url,请改为发送%25
在您的情况下,为了让php看到百分号,必须将字符串%25B6011000995504101^SB
传递给服务器
为什么?
在URL中,百分号具有特殊含义。用于对特殊字符进行编码。例如,
&
是参数之间的分隔符,因此如果希望参数实际包含一个&
,请改为编写%26
。因为百分号用于对特殊字符进行编码,所以它也是一个特殊字符,因此如果您想实际发送百分号,则必须对其进行编码。百分号的编码是%25
在URL中包含原始字符串之前,最好将其通过URL编码,如下所示:
<?php
$original='%B6011000995504101^SB';
$updated=urlencode($original);
echo "<a href=\"some_page.php?$updated\">Link here</a>";
?>
接收页面将知道该做什么-请在您的Web服务器上尝试此示例:
<?php
if($_GET['argument']) {
echo "<p>You passed in the argument "$_GET[argument]"</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)使用url_encode()和url_decode()也可能需要htmlentities()%B6例如,是您得到的blob的代码。传递%实际上是一个非常糟糕的主意。您最好为%传递一个不同的字符,或者根本不传递它,并假设%始终在那里,然后在脚本中指定它。%n用于urlencode,最好传递一个特定的模式,如$$或其他内容,并在php代码中对其进行解码。可能的重复会增加另外25个,如%2525Awesome!!因为这个问题我一直在折磨自己。。。THXI如果以%2525结尾,则表示您意外地对字符串进行了两次编码。找出编码发生的位置,并删除/避免其中一个。这是一个非常好的实践