要有cURL支持,那麼php必須編譯--with-curl選項。
要支持套接字,則必須使用--enable-sockets選項編譯php。
要使流封裝支持http,ftp ...在fopen,file_get_contents等函數中...... allow_url_fopen必須在php.ini中設置爲On。
雖然大多數共享虛擬主機服務器都啓用了全部(或幾乎所有)以前的功能,但其中一些
可能不支持這些功能,因爲它們的可選狀態。
另一方面,流是php核心的一部分。
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");
:
如果有人想使一個檸便攜式(我認爲),例如PHP HTTP客戶端,而不是基於捲曲, 插座,或包裝(HTTP)的支持,那麼,可以用做
使用不是http流包裝器,而是使用不同的流傳輸包裝器(tcp)。
我在我的localhost上看到,即使php.ini指令allow_url_fopen設置爲Off, 我可以通過stream_socket_client()使用tcp傳輸進行遠程連接。
我的問題是:
1.有沒有辦法來阻止核心流的可用性,除了禁用像stream_socket_client功能的可能性或通過硬編碼它們喜歡在php.ini的fsockopen:
disable_functions = exec,passthru,shell_exec,stream_socket_client,fsockopen ...
? ?
2.使用$fp = stream_socket_client('tcp://...',[...]);
最便攜的解決方案 進行遠程連接,通過先連接到正確的端口(例如80)和使用fwrite($fp, 'GET /...');
發送低電平http/ftp查詢 到遠程服務器?
+1,對錢。 – 2011-05-07 12:00:52