URL Query Build 释疑

2016-12-01  本文已影响58人  michael_jia

使用腾讯云平台 IM 服务,调用 REST API,其中要组装 URL 中的 Query,今天竟大费周折;

<?php
$data=array('foo'=>'bar',
    'baz'=>'boom',
    'cow'=>'milk*&k=5',
    'php'=>'hypertext processor');
    echo http_build_query($data)."\n";
?>
foo=bar&baz=boom&cow=milk%2A%26k%3D5&php=hypertext+processor

问题:安装 intl 扩展虽然简单,能想到找扩展来解决问题也是一条路子,但我总讶异,这样的一个小事情,还需要动用扩展?觉得好奇,就探究了一下,结论:
1. http_build_query 函数是可靠的;
2. 腾讯 API 的实现是有缺陷的;
3. intl 扩展的实现看起来并不简单;
4. intl 扩展的缺陷掩盖了腾讯的缺陷;

根本原因在于,对 urlencode 标准和实现机制的理解是存在差异性的;对于 Base64,也存在这样的问题;

解释
相关函数
intl extension
上一篇下一篇

猜你喜欢

热点阅读