【发布时间】:2012-10-06 11:57:51
【问题描述】:
我想知道是否有办法通过已经打开的套接字使用curl,例如,调整这个:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
使用curl_exec() 代替fgets($fp, 128)
(或者,任何其他方式一直在同一流上使用curl(),我的目标是阅读 twitter 流 api)
谢谢
【问题讨论】:
-
除非你想把 curl 和
fgets结合在一起 -
不,cURL 有自己的内部套接字处理。你面临的真正问题是什么?为什么要为 cURL 启动一个套接字,而 cURL 本身可以做得很好?你想解决什么问题?
-
Twitter 流 api 强制客户端使用单个连接并“永远”留在那里听,所以我需要 curl() 始终使用相同的连接,而不是连接/读取/断开连接。另外,我想要 curl 而不是 fwrite($fp, $out),因为我使用了一个使用 curl 和 OAuth 的类,这是 Twitter API 所需要的
-
如果你愿意,我可以举个例子