无法从网址获取值

时间:2017-02-09 08:22:50

标签: php

无法从网址获取值。

localhost/ddd.php?udh=%05%00%03%6d%03%01

当我尝试将此网址粘贴到地址栏“localhost / ddd.php?udh =%05%00%03%6d%03%01”时,它会转换为“http://localhost/ddd.php?udh=%05%00%03m%03%01” 有没有解释?

此外我无法获得$ _GET ['udh'],它会打印:

array (size=1)
  'udh' => string '�m' (length=6)

2 个答案:

答案 0 :(得分:0)

您可能应该使用urlencode()对邮件进行编码,并且在使用$_GET访问邮件时,您必须使用urldecode()对其进行解码。

<强> HTML

<a href ="localhost/ddd.php?udh=".<?php urlencode('message');?>></a>

<强> PHP

$value = urldecode(isset($_GET['udh']));

答案 1 :(得分:0)

来自W3C学校:

  

网址编码(编码百分比)   只能使用ASCII字符集通过Internet发送URL。

     

由于URL通常包含ASCII集之外的字符,因此必须将URL转换为有效的ASCII格式。

     

URL编码用“%”后跟两个十六进制数字替换不安全的ASCII字符。   网址不能包含空格。 URL编码通常用加号(+)或%20替换空格。

因此,当您将字符串%05%00%03%6d%03%01放入浏览器时,它会自动尝试对其进行解码以搜索%字符,在您的情况下会发生%6d = m。

不确定您是否使用%作为分隔符,但您可以更改为:或|并使用explode来提取它(http://php.net/manual/en/function.explode.php