【发布时间】:2011-03-27 02:26:44
【问题描述】:
鉴于下面的脚本可以获取另一种语言的单词并与服务器建立连接。
但是,有太多单独的字符串实体,其中一些返回为空值。 StackOverflow 研究员@Pekka 正确评估了 Google 的局限性:结果超时。
Q1.如何使连接更强大/更可靠,尽管以速度为代价?
Q2.如何刻意限制每秒与服务器建立的连接数?
只要返回的值正确,我愿意牺牲速度,即使它会导致 120 秒的延迟)。现在一切都在 0.5 秒左右开始和结束,翻译中有各种差距。几乎就像荷兰奶酪(有洞),我想要没有洞的奶酪,即使这意味着更长的等待时间。
如您所见,我自己的让脚本休眠 1/4 秒的解决方案不能称为优雅......如何从这里开始?
$url='http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . rawurlencode($string) . '&langpair=' . rawurlencode($from.'|'.$to);
$response = file_get_contents($url,
null,
stream_context_create(
array(
'http'=>array(
'method'=>"GET",
'header'=>"Referer: http://test.com/\r\n"
)
)
));
usleep(250000); # means 1/4 of second deliberate pauze
return self::cleanText($response);
}
【问题讨论】: