0
PHPでfsockopenを使ってコマンドを送受信するIMAPプロトコルで遊んでいます。私の予備実験はうまくいきますが、非常に遅いです。下記の簡単な機能を実行するには約2分かかります。私はいくつかの異なるIMAPサーバーを試して、同じ結果を得ました。誰がこのコードがなぜとても遅いのか教えていただけますか?PHP fsockopenが遅い
<?php
function connectToServer($host, $port, $timeout) {
// Connect to the server
$conn = fsockopen($host, $port, $errno, $errstr, $timeout);
// Write IMAP Command
$command = "a001 CAPABILITY\r\n";
// Send Command
fputs($conn, $command, strlen($command));
// Read in responses
while (!feof($conn)) {
$data .= fgets($conn, 1024);
}
// Display Responses
print $data;
// Close connection to server
fclose($conn);
}
connectToServer('mail.me.com', 143, 30);
?>
これは私が戻って取得応答である:
macinjosh:Desktop Josh$ php test.php
* OK [CAPABILITY mmp0613 IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS CHILDREN BINARY UNSELECT SORT LANGUAGE IDLE XSENDER X-NETSCAPE XSERVERINFO X-SUN-SORT X-SUN-IMAP X-ANNOTATEMORE X-UNAUTHENTICATE XUM1 AUTH=PLAIN STARTTLS] Messaging Multiplexor (Sun Java(tm) System Messaging Server 6.3-6.03 (built Jun 5 2008))
* CAPABILITY mmp0613 IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS CHILDREN BINARY UNSELECT SORT LANGUAGE IDLE XSENDER X-NETSCAPE XSERVERINFO X-SUN-SORT X-SUN-IMAP X-ANNOTATEMORE X-UNAUTHENTICATE XUM1 AUTH=PLAIN STARTTLS
a001 OK CAPABILITY completed
IMAP拡張機能がインストールされていないサーバーでIMAPを使用できるようにしたいと考えています。共有ホスティング環境。 – macinjosh
ありがとうございました、それはそうでした! – macinjosh
このような解決策は既に存在します。 phpclasses.orgはそれらでいっぱいです、あなたはこれを試すことができます:http://www.phpclasses.org/browse/package/2351.html – Havenard