PHP模拟发送POST请求的二、用PHP和JS处理URL信息

知道了HTTP请求的腔信息后,我们尚需针对要地址有了解。再者,HTTP GET请求是指URL实现的,所以了解URL的组织,处理URL的要不言而喻。

当PHP中我们之所以parse_url()函数来拍卖URL信息。

那个函数原型如下:

array parse_url ( string $url [,URL_COSTANT])

style=”color: #000000; line-height: 1.5; background-color: initial;”>本函数解析一个 URL 并返回一个提到数组,包含在 URL 中起的各种有。

针对重不合格的 URL,parse_url() 可能会见回来 FALSE 并生 E_WARNING。否则会回去一个干数组,其部分为(至少有一个)

那个对的回到值如下:

 scheme  http 协议信息 

 host   主机信息 

 port   端口号

 user   用户名

 pass   密码

 path  站内路径

 query  在问号 ? 之后的查询信息  

 fragment  在散列符号 # 之后 锚点信息 Hash信息

下是一个超人的URL字符串,我们本着其用parse_url()解析,并出口其结果往往组。

$url='https://zbs:mypass@www.baidu.com:8080/home/index.html?gender=male&write=code#anchor';

$arr=parse_url($url);

array (size=8)

'scheme' => string 'https' 

'host' => string 'www.baidu.com' 

'port' => int 8080

'user' => string 'zbs' 

'pass' => string 'mypass' 

'path' => string '/home/index.html' 

'query' => string 'gender=male&write=code' 

'fragment' => string 'anchor'

除此以外,我们尚好针对第二独参数赋值,指定要回来的URL部分,对应的URL_CONST取值如下:

scheme:PHP_URL_SCHEME, 

host:PHP_URL_HOST, 

port:PHP_URL_PORT, 

user:PHP_URL_USER, 

pass:PHP_URL_PASS, 

path:PHP_URL_PATH, 

query:PHP_URL_QUERY,

fragment:PHP_URL_FRAGMENT.

像我们设指定返回地址的查询字段信息:

$url='https://zbs:mypass@www.baidu.com:8080/home/index.html?gender=male&write=code#anchor';

$arr=parse_url($url,PHP_URL_QUERY);//string '/home/index.html

清楚了哪拆分URL信息后,我们吧再度要学会拼合URL信息,拼合URL信息有一个专门的函数http_build_url(),但以此函数因该处理繁琐,一般比少使用,我们常因此字符串来拼合URL,在处理比较多的查询信息(query_string)时,我们见面因此http_build_query()函数。

http_build_query()函数能协助我们以一个关联数组快速拼合成一个询问字符串,它还好拿一个对象分析拼合为一个询问字符串,但如小心,它只能保留修饰符为”public”的”属性”,其余信息用会给放弃。

例:

$info=['run'=>'10km','eat'=>'3kg'];

var_dump(http_build_query($info));//string 'run=10km&eat=3kg'

class Msg{

  public $attr_public="value_public";

  protected $attr_protected="value_protected";

  private $attr_private="value_private";

  function foo(){

    echo "foo";

  }

}

$msg=new Msg();

var_dump(http_build_query($msg));//string 'attr_public=value_public'

 

任何:JS获取当前url信息:

Location 对象是 Window 对象的一个有,可经过 window.location 属性来访问,它富含了关于当前 URL 的信。

Location 对象属性

属性       描述

hash     URL锚点信息

host     主机名和当下 URL 的端口号

hostname  当前URL的主机名

href     完整的URL

pathname    当前URL的途径有

port         当前URL的捧口号

protocol   当前URL的协议

search      查询字符串

相关文章