谷歌自定义搜索无法正常工作

时间:2011-03-20 03:29:05

标签: php search

以下是test.html文件代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-hans" xml:lang="zh-hans">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
    <div class="fr_search">        
        <form action="cse.php"  accept-charset="UTF-8" method="post"
              id="search-theme-form">    
            <input type="text" maxlength="128" name="search_theme_form"
                id="edit-search-theme-form-1" size="15" value=""  class="form-text" />
            <input type="image" name="submit" id="edit-submit"  
                class="form-submit" src="images/search_btn_top.gif" /></div>
        </form>
    </div>
</body>
</html>

我放了http://www.google.com/cse/manage/create?hl=en生成的代码。该 “要搜索的网站”我输入的是http://stackoverflow.com。当我将生成的代码放入cse.php时。然后将cse.php和test.html放入我当地的php环境中。当我在搜索文本框中输入文本“php”并单击搜索按钮时。但我的搜索结果页面上没有任何结果。我的步骤和代码有什么问题?谢谢。

这是cse.php文件代码:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>test search</title>
 </head> 
 <body>
     <script src="http://www.google.com/jsapi" type="text/javascript"></script>
     <script type="text/javascript">
  google.load('search', '1', {language : 'en'});
   google.setOnLoadCallback(function()
    {
       var customSearchControl = new google.search.CustomSearchControl   ('011247711644571852159:xe2ytn1hwsa');
       customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
       customSearchControl.draw('cse');
   }, true);
      </script>
      <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css"
            type="text/css" />      
 <?php echo 'test'; ?>
 </body>
</html>

2 个答案:

答案 0 :(得分:1)

我不确定从哪里开始使用您的代码,但使用Custom Search code generator中的新代码段,您可以将查询字符串传递给CustomSearchControl。使用代码借用from here,这样的事情应该有效:

<div id="cse">Loading&hellip;</div>
<script src="http://www.google.com/jsapi"></script>
<script>

    // Extract user's query from the URL
    function getQuery() {
        var url = '' + window.location;
        var queryStart = url.indexOf('?') + 1;
        if (queryStart > 0) {
            var parts = url.substr(queryStart).split('&');
            for (var i = 0; i < parts.length; i++) {
                if (parts[i].length > 2 && parts[i].substr(0, 2) == 'q=') {
                    return decodeURIComponent(parts[i].split('=')[1].replace(/\+/g, ' '));
                }
            }
        }
        return '';
    }

    google.load('search', '1', {language:'en' });
    google.setOnLoadCallback(function() {
        var cseControl = new google.search.CustomSearchControl('ID_GOES_HERE');
        cseControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        cseControl.draw('cse');
        // Execute a query based on the query string
        cseControl.execute(getQuery());
    }, true);
</script>

所以,举例来说,这将放在你的cse.php页面中(尽管此阶段没有PHP),而你的初始页面形式如下:

<form action="cse.php" method="get">
    <input name="q"> <input type="submit">
</form>

答案 1 :(得分:0)

删除要搜索的网站中的http://位。