使用 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)?
编辑
刚刚再次尝试使用一个 URL,该 URL 具有指向主机之后的页面的路径。路径显示正常,但主机仍被加星标。
部分答案
只是想尝试 debug(parse_url($url)['host'])
它会正确打印主机。我意识到其他元素只有在 url 中存在时才会被设置。
但是,谁能解释为什么打印数组会打印几个星而不是主机名,即使它肯定存储在那里?
最佳答案
发生这种情况的原因是 debug() 的工作方式。很多个月前,人们对他们可能意外地将数据库凭据转储到错误页面(使用与 debug()
相同的底层代码)感到不满。因此,debug() 和 Debugger::export() 将一组可能具有数据库凭据的数组键列入黑名单。以下键被替换为***:
- 密码
- 登录
- 主持人
- 数据库
- 端口
- 前缀
- 架构
关于php - parse_url 在调试时将主机名作为星号(但仍然可以获得值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31327066/