【发布时间】:2009-08-06 15:15:05
【问题描述】:
我在从 php 获取 google 搜索 url 时遇到问题。这是我的代码:
<?php
$handle = fopen("http://www.google.com/complete/search?hl=en&js=true&qu=" .
$_GET["qu"], "r");
while (!feof($handle)) {
$text = fgets($handle);
echo $text;
}
fclose($handle);
?>
这是我得到的错误:
PHP 警告: fopen(http://www.google.com/complete/search?hl=en&js=true&qu=cat): 无法打开流:连接 尝试失败,因为已连接 当事人没有正确回应后 一段时间,或成立 连接失败,因为已连接 主机未能响应。在 C:\Inetpub\test\google.php 在第 3 行 PHP致命错误:最大执行 超过 60 秒的时间 C:\Inetpub\test\google.php 在第 3 行
我正在使用 fiddler,并且对 url 本身进行请求可以正常工作,但由于某种原因 php 不能。有人知道为什么吗?
更新:这是我的 javascript:
function getSuggest(keyEvent) {
keyEvent = (keyEvent) ? keyEvent : window.event;
input = (keyEvent.target) ? keyEvent.target : keyEvent.srcElement;
if (keyEvent.type == "keyup") {
if (input.value) {
getSearchData("google.php?qu=" + input.value);
} else {
var target = document.getElementById("targetDiv");
target.innerHTML = "<div></div>";
}
}
}
function getSearchData(dataSource) {
if (XMLHttpRequestObject) {
XMLHttpRequestObject.open("GET", dataSource);
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
eval(XMLHttpRequestObject.responseText);
}
}
XMLHttpRequestObject.send(null);
}
}
function sendRPCDone(unusedVariable, searchTerm, arrayTerm, arrayResults, ususedArray) {
var data = "<table>";
var loopIndex;
if (arrayResults.length != 0) {
for (var loopIndex = 0; loopIndex < arrayResults.length; loopIndex++) {
data += "<tr><td>" + "<a href='http://www.google.com/search?q=" +
arrayTerm[loopIndex] + "'>" + arrayTerm[loopIndex] + '</a></td><td>' +
arrayResults[loopIndex] + "</td></tr>";
}
}
data += "</table>";
var targetDiv = document.getElementById("targetDiv");
targetDiv.innerHTML = data;
}
这是我的html:
<div id="googleSearch">
Search For <input id="textField" type="text" name="textField" onkeyup="getSuggest(event)" />
<div id="targetDiv4"></div>
</div>
【问题讨论】: