parse_url在调试时将主机名称作为星号(但仍然可以获得值)

时间:2015-07-09 19:58:20

标签: php cakephp

使用PHP 5.5.12

使用CakePHP 2.6.7

运行

debug($url); // output = "http://google.co.uk"

debug(parse_url($url));
/* output = array(
                'host' => '*****',
                'scheme' => 'http'
            )
*/

我一直在使用它没有麻烦,但现在复制/粘贴我的代码的一部分,以使其作为方法(以节省重复自己)已经开始给我这个输出。但是我在原来的同一个地方测试它也给了我这个输出。

任何人都可以解释为什么主机名是星号,为什么数组的其余部分都没有出现(我意识到所有其他元素都应该是NULL)?

修改

刚刚尝试使用一个在主机后有一个页面路径的网址。该路径显示正常,但主机仍然已加星标。

部分答案

只是想试试debug(parse_url($url)['host'])并正确打印主机。我意识到只有在url中存在其他元素才会被设置。

然而,任何人都可以解释为什么打印出阵列会打印几颗星而不是主机名,即使它存储在那里也是如此?

1 个答案:

答案 0 :(得分:2)

发生这种情况的原因是debug()的工作原理。许多人以前,人们不高兴他们可能会意外地将他们的数据库凭证丢弃在错误页面中(使用与debug()相同的底层代码)。因此,debug()和Debugger :: export()将一组可以拥有数据库凭据的数组键列入黑名单。以下键替换为***':

  • 密码
  • 登录
  • 宿主
  • 数据库
  • 端口
  • 前缀
  • 模式