cURLをサポートするには、--with-curlオプションを指定する必要があります。
ソケットをサポートするには、--enable-socketsオプションを指定してphpをコンパイルする必要があります。
ストリームラッパーは、http、ftp ...をfopen、file_get_contentsなどの関数でサポートさせるには、allow_url_fopenをphp.iniでOnに設定する必要があります。
ほとんどの共有ウェブホスティングサーバーでは、以前のすべての機能が有効になっていますが、
の中には、オプションのステータスがあるため、これらの機能をサポートしていないものもあります。
一方、ストリームはPHPコアの一部です。
誰かがverryがポータブルにしたい場合は(私は思う)PHPのHTTPクライアント例えば、cURLのに基づいていない、 ソケット、またはラッパー(HTTP)のサポート、そして、で行うことができます:
php、ほとんどのポータブルリモートサーバとコアストリームの接続?
$fp = stream_socket_client("tcp://example.com:80", $errno, $errstr);
fwrite($fp, "GET/HTTP/1.0\r\nHost: example.com\r\nAccept: */*\r\n\r\n");
HTTPストリームラッパーではなくストリームトランスポートラッパー(tcp)を使用しています。
php.iniディレクティブのallow_url_fopenがオフに設定されていても、 私はtcp transportを使用してstream_socket_client()経由でリモート接続を行うことができます。
私の質問は以下のとおりです。
1のようにそれらをハードコーディングすることにより、php.iniのfsockopenのstream_socket_clientなどの関数または無効にする可能性を除いて、コアストリームの可用性をブロックするが方法です:
disable_functions = exec,passthru,shell_exec,stream_socket_client,fsockopen ...
を?? ?
2.最初に正しいポート(たとえば80)に接続し、fwrite($fp, 'GET /...');
を使用して低レベルを送信することにより、http/ftp ...要求で後で有効にできる最も移植性の高いソリューション をリモート接続用に使用していますか? http/ftpは をリモートサーバーに照会しますか?
+1、お金の上に。 –