Я застрял, пытаясь решить эту проблему во многих отношениях, прочитав много сообщений, но до сих пор не повезло. Я работаю над Mac, OSX 10.7 Lion, и я пишу плагин для сайта WordPress (php-файлы) с использованием MAMP, и в какой-то момент мне нужно сделать 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 и его инструменты командной строки. Это то, что я сделал:
изменен PATH:
$ echo "export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH" >> ~/.profile`
что пути для php, pear и pecl верны:
Я загрузил источник для php с страницы MAMP (и проверял, что загружаемая версия была той же, которую я использую, которая является 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- лев
Я был бы признателен за любую идею, потому что у меня кончено.
Класс HttpRequest предоставляется v1 этого расширения PECL.
$ pecl install -f pecl_http-1.7.6
через: $ pecl install -f pecl_http-1.7.6
Здесь вы можете найти документацию для v2 : https://mdref.m6w6.name/http
альтернативно, если вы не можете контролировать определенные экологические переменные или устанавливать пакеты, вы можете попробовать использовать 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"];