我有以下代码
protected function parse($header) {
$headerArr = http_parse_headers($header);
foreach ($headerArr as $key => $value) {
echo $key.'=>'.$value;
}
}
其中$ header是一个http标头。此代码位于symfony2项目的PHP类中。我可以在浏览器中执行它,获得预期结果解析标头的键和值,如此
问题是当我尝试为函数parse()运行单元测试时,PHPUnit无法找到http_parse_headers()函数抛出“PHP致命错误:调用未定义函数http_parse_headers()
这怎么可能? 我该如何解决?
答案 0 :(得分:1)
做一些研究我找到了解决问题的方法。实际上它已经在Stackoverflow中回答了here。来自控制台的php执行使用与从Web浏览器执行php不同的php.ini文件。所需的只是在相应的.ini文件中启用pecl_http扩展。 去做这个 在命令行中执行
php --ini
检查命令/行php使用的.ini文件的位置,然后启用文件中的扩展名
extension=http.so
从命令行
检查扩展是否已加载php -m
答案 1 :(得分:0)
快速搜索PHP手册显示http_parse_headers是pecl扩展的一部分:PECL pecl_http> = 0.10.0
您的服务器和命令行php版本必须不同。 php手册有一个解决方法,但希望你可以更新命令行版本。