Любая альтернатива curl_exec ()? - PullRequest
       12

Любая альтернатива curl_exec ()?

1 голос
/ 03 сентября 2011

Я пытаюсь сделать что-то вроде скрипта проверки лицензии, но поскольку не все хосты допускают curl_exec, я хотел бы знать, есть ли альтернативный способ сделать обратный вызов?

Вот как я делаю это с curl:

curl_setopt($ch, CURLOPT_URL, $url."/my_script.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $info);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

Вы можете просто использовать file_get_contents() с URL-адресами:

file_get_contents('http://www.google.com');

Это может быть отключено, однако, с помощью простой опции INI allow_url_fopen.

В качестве альтернативы, вы можете использоватьfsockopen(), который должен быть доступен в большинстве систем.

С помощью fsockopen() вы можете открыть сокет для HTTP-сервера, а затем обмениваться данными с использованием стандартных fwrite() и fread().Недостатком является то, что вы должны сами писать заголовки HTTP-запросов, а также анализировать заголовки HTTP-ответов.Если вы посмотрите на fsockopen() в руководстве по PHP, вы увидите множество примеров: http://fr2.php.net/fsockopen

Я предлагаю использовать cURL в качестве основного параметра, file_get_contents () в качестве дополнительного (если ini_get('allow_url_fopen') возвращает положительный результат)результат) и реализовать такие решения, как fsockopen() как запасной вариант.

2 голосов
/ 03 сентября 2011

Вы можете переключить curl_multi_exec, но это, вероятно, также отключено.

В качестве альтернативы, используйте обертку потока HTTP .Чтобы настроить запрос POST, вам необходимо настроить собственный HTTP-контекст .

...