Google AJAX Search API Sample

<?php
    $url 
'ma-bank.com';
    
$charset 'UTF-8';
    
$gapi 'Google AJAX Search API';
    
$search = new Search();

    echo 
'<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset='
.$charset.'" />
<title>'
.$gapi.' Sample</title>
</head>
<body>
<h1><a href="./search.php">'
.$gapi.' Sample</a></h1>
<div id="main">
<form method="get" action="./search.php">
<input type="text" name="searchbody" value="'
.$search->h($_REQUEST['searchbody']).'" />
<input type="submit" value="サイト内検索" />'
.
$search->SearchR().'
</div>
</form>
<hr />
<a href="./search_source.php">ソースを見る</a>
<address>
(C)<a href="http://ma-bank.com/">'
.$search->h('M&Aバンク').'</a>
</address>
</body>
</html>'
;

class 
Search {
    function 
SearchR() {
        global 
$url$gapi;
        
$qb $_REQUEST['searchbody'];
        if(!
$qb) {
            return;
        }
        
$query urlencode($qb.' site:'.$url);
        
$url 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&q='.$query;
        
$text = @file_get_contents($url);
        if(
$text) {
            
$json json_decode($texttrue);
        }
        
$ary $json['responseData']['results'];
        
$num count($ary);
        if(
$num) {
            
$t '<p><strong>'.$this->h($qb).'</strong> の検索結果のうち '.intval($json['responseData']['cursor']['estimatedResultCount']).' 件中 1 - '.$num.' 件目</p>';
            for(
$i=0$i<$num$i++) {
                
$t .= '<dt><a href="'.$this->h($ary[$i]['unescapedUrl']).'">'.$ary[$i]['title']."</a></dt>
<dd>"
.$ary[$i]['content'].'</dd>';
            }
            
$t .= '<dt> <a href="http://www.google.co.jp/search?q='.$query.'">Googleの検索結果をもっと見る</a></dt>';
        }else {
            
$t '<dt>見つかりませんでした。</dt>';
        }
        return 
'
<h2>検索結果</h2>
<dl>'
.$t.'</dl>
<p>Powerd by <a href="http://code.google.com/intl/ja/apis/ajaxsearch/">'
.$gapi.'</a></p>'
;
    }
// XSS
    
function h($str='') {
        global 
$charset;
        if(!
is_numeric($str)) {
            
$str htmlspecialchars($strENT_QUOTES$charset);
        }
        return 
$str;
    }
}
?>

(C)M&Aバンク