- JEVUSKA - http://www.jevuska.com -
Search Engine Pake Bing, Google dan Yahoo Boss di WP
Posted By Jevuska On June 4, 2010 @ 2:07 am In Tutorial | 17 Comments
Dulu saya sudah bahas bagaimana cara bikin search engine di WordPress pake Bing, juga mesin pencari pake Google. Sekarang bagaimana kalo kita tambahkan satu lagi pake Yahoo Boss dan menggabungkan semuanya jadi satu. Jadi search engine di halaman hasil pencarian wp-nya pake Bing, Google dan Yahoo Boss. Tanpa basa-basi embat aja langsung skrip-nya sob (modifikasi dikit aja kok dari yang dulu, langkahnya juga sama.)
Kode 1 (Script proses keyword) – Buka search.php dan tempatkan Kode berikut di paling atas sebelum kode <?php get_header(); ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | < ?php define('BING_API_KEY', ''); define('YAHOO_API_KEY', ''); define('GOOGLE_API_KEY', ''); function pete_curl_get($url, $params){$post_params = array(); foreach ($params as $key => &$val) { if (is_array($val)) $val = implode(',', $val); $post_params[] = $key.'='.urlencode($val); } $post_string = implode('&', $post_params); $fullurl = $url."?".$post_string; $ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_URL, $fullurl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040608'); //kamu bisa pake user agent yang lain, lihat listnya di sini www.user-agents.org $result = curl_exec($ch);curl_close($ch); return $result; } function perform_bing_web_search($termstring){$searchurl = 'http://api.bing.net/json.aspx?'; $searchurl .= 'AppId='.'ABCDEFG'; //ganti ABCDEFG dengan kode api BING http://www.bing.com/developers/appids.aspx $searchurl .= '&Query='.urlencode($termstring); $searchurl .= '&Sources=Web'; $searchurl .= '&Web.Count=10'; //jumlah list situs yang dihasilkan $searchurl .= '&Web.Offset=0'; $searchurl .= '&Web.Options=DisableHostCollapsing+DisableQueryAlterations'; $searchurl .= '&JsonType=raw'; $response = pete_curl_get($searchurl, array()); $responseobject = json_decode($response, true);if ($responseobject['SearchResponse']['Web']['Total']==0)return array(); $allresponseresults = $responseobject['SearchResponse']['Web']['Results']; $result = array(); foreach ($allresponseresults as $responseresult){$result[] = array('url' => $responseresult['Url'],'title' => $responseresult['Title'],'abstract' => $responseresult['Description'],); }return $result; } function perform_google_web_search($termstring) { $start = 0; $result = array(); while ($start<10) //kamu bisa ganti angka "10" untuk jumlah list yang ditampilkan { $searchurl = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0'; $searchurl .= '&key='.'ABCDEFG'; //ganti ABCDEFG dengan kode api Google http://code.google.com/apis/ajaxsearch/signup.html $searchurl .= '&start='.$start; $searchurl .= '&rsz=large'; //kamu bisa pake "small" untuk menampilkan hanya 4 (maksimal) pencarian $searchurl .= '&filter=0'; //kamu bisa ganti "filter=1" untuk mem-filter hasil pencarian $searchurl .= '&q='.urlencode($termstring); $response = pete_curl_get($searchurl, array()); $responseobject = json_decode($response, true); if (count($responseobject['responseData']['results'])==0) break; $allresponseresults = $responseobject['responseData']['results']; foreach ($allresponseresults as $responseresult) { $result[] = array( 'url' => $responseresult['url'], 'title' => $responseresult['title'], 'abstract' => $responseresult['content'], ); } $start += 8; } return $result; } function perform_boss_web_search($termstring) { $searchurl = 'http://boss.yahooapis.com/ysearch/web/v1/'; $searchurl .= urlencode($termstring); $searchparams = array( 'appid' => 'ABCDEFG', //ganti ABCDEFG dengan kode api Yahoo Boss https://developer.apps.yahoo.com/projects/projects 'format' => 'json', 'count' => '10', ); $response = pete_curl_get($searchurl, $searchparams); $responseobject = json_decode($response, true); error_log(print_r($responseobject, true)); if ($responseobject['ysearchresponse']['totalhits']==0) return array(); $allresponseresults = $responseobject['ysearchresponse']['resultset_web']; $result = array(); foreach ($allresponseresults as $responseresult) { $result[] = array( 'url' => $responseresult['url'], 'title' => $responseresult['title'], 'abstract' => $responseresult['abstract'], ); } return $result; }if (isset($_REQUEST['s'])) { $termstring = urldecode($_REQUEST['s']); } else { $termstring = '';} ?> |
Kode < ?php pada kode 1 line 1 agak terpisah tuh, dirapatkan aja kek gini <?php. Kode line 39 while ($start<10) jadinya gini while ($start<10).
Kode 2 (hasil yang ditampilkan) Tempatkan kode berikut sebelum kode <?php endif; ?>.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | < ?php function CleanFileNameBan($result){ $bannedkey = array("key","key","key"); //masukkan kata kunci satu persatu untuk menghindari kata-kata yang tidak diinginkan. $result = str_replace($bannedkey, '',$result); $result = trim($result); return $result; } function hilangkan_spesial_karakter($result) { //fungsi hilangkan semua spesial karakter $result = strip_tags($result); $result = preg_replace('/&.+?;/', '', $result); $result = preg_replace('/\s+/', ' ', $result); $result = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', ' ', $result); $result = preg_replace('|-+|', ' ', $result); $result = preg_replace('/?[a-z0-9]+;/i','',$result); $result = preg_replace('/[^%A-Za-z0-9 _-]/', ' ', $result); $result = trim($result, ' '); return $result; } ?> < ?php $termstring = $s ?> < ?php if ($s!='') { $bingresults = perform_bing_web_search($termstring); $bossresults = perform_boss_web_search($termstring); $googleresults = perform_google_web_search($termstring); //Kamu bisa ganti kode <h2> serta test yang ada sesuai dengan kode html dan text keinginan kamu begitu juga dengan yang lainnya print '<h2>Search Result Bing:</h2>'; foreach ($bingresults as $result) { print '<div class="post">'; print '<h3><a href="'.$result['url'].'">'.CleanFileNameBan(hilangkan_spesial_karakter($result['title'])).'</a></h3>'; print '<p>'.CleanFileNameBan(strip_tags($result['abstract'])).'</p>'; print '<p style="color:#777777">Sumber: '.$result['url'].'</p>'; print '</div>'; } print '<h2>Search Result Yahoo:</h2>'; foreach ($bossresults as $result) { print '<div class="post">'; print '<h3><a href="'.$result['url'].'">'.CleanFileNameBan(hilangkan_spesial_karakter($result['title'])).'</a></h3>'; print '<p>'.CleanFileNameBan(strip_tags($result['abstract'])).'</p>'; print '<p style="color:#777777">Sumber: '.$result['url'].'</p>'; print '</div>'; } print '<h2>Search Result Google:</h2>'; foreach ($googleresults as $result) { print '<div class="post">'; print '<h3><a href="'.$result['url'].'">'.CleanFileNameBan(hilangkan_spesial_karakter($result['title'])).'</a></h3>'; print '<p>'.CleanFileNameBan(strip_tags($result['abstract'])).'</p>'; print '<p style="color:#777777">Sumber: '.$result['url'].'</p>'; print '</div>'; } } ?> |
Kode < ?php pada kode 2 line 1,21,23 agak terpisah tuh, dirapatkan aja kek gini <?php
Kasi tahu yee..kalo ada error and happy coding sob!
Article printed from JEVUSKA: http://www.jevuska.com
URL to article: http://www.jevuska.com/2010/06/04/search-engine-pake-bing-google-dan-yahoo-boss-di-wp
Click here to print. Click here for download (Internet Explorer only)
Copyright © 2009 JEVUSKA. All rights reserved.