我一直试图以多种方式解决这个问题,阅读很多帖子但仍然没有运气。 我在Mac,OSX 10.7 Lion上工作,我正在使用MAMP为WordPress站点(php文件)编写插件,有一次我必须发出HTTP请求:
$request = new HttpRequest('something');
$request->setMethod(HTTP_METH_GET);
执行此请求时出现错误,当我检查日志文件时,会显示以下消息:
"PHP Fatal error: Class 'HttpRequest' not found in (the_php_file)"
我已经安装了PEAR,PECL和HTTP扩展(pecl_http),Xcode及其命令行工具。 这就是我所做的:
修改了路径:
$ echo "export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH" >> ~/.profile`
验证了php,pear和pecl的路径是正确的:
我从MAMP页面下载了php的源代码(并检查我下载的版本是否与我使用的版本相同,即php5.5.3)。然后我提取了内容并将其放入/Applications/MAMP/bin/php/php5.5.3/include/php
./configure
pecl install pecl_http
我还将这些扩展添加到php.ini(最初,我修改了MAMP / bin / php / php5.5.3 / conf / php.ini文件):
extension=raphf.so
extension=propro.so
extension="http.so"
关于引号中的最后一个:当我手动添加扩展时,我这样做:extension=http.so
。然后(当试图修复我的问题时)我尝试了另一种自动修改php.ini的安装,并使用quot编写了扩展名。标记,但结果仍然相同,所以没有什么区别。
在所有这些之后,我停止了MAMP服务器并再次启动它,但是当我执行php时我仍然得到错误(在php_error.log中可见):
PHP Fatal error: Class 'HttpRequest' not found
我一直在关注本指南,其中包括以下内容: http://www.lullabot.com/blog/article/installing-php-pear-and-pecl-extensions-mamp-mac-os-x-107-lion
我很感激任何想法,因为我已经用完了。
答案 0 :(得分:25)
HttpRequest类由此PECL扩展的 v1 提供。
通过以下方式重新安装:$ pecl install -f pecl_http-1.7.6
您可以在此处找到 v2 的文档: https://mdref.m6w6.name/http
答案 1 :(得分:4)
或者,如果您无法控制某些环境变量或安装包,您可以尝试使用curl,它应该返回一个json对象(下面是google api调用的工作片段)。
$url = 'https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=TOKEN_DATA_123';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$json = json_decode($response, true);
curl_close($ch);
print_r($json);
$userEmail = $json["email"];