Script Auto Generate Content Dengan PHP (With Bing API)
Kali ini saya ingin mencoba berbagi script kepada anda semua, bagi yang seneng AGC-AGCan. Bagi anda yang punya situs berbasis PHP CMS Engin buatan sendiri, mungkin bisa tambahkan script AGC ini.
Yang DIbutuhkan :
1. BING API2. Situs PHP
3. Sedikit kesabaran.
Step 1
Mendaftarkan diri(situs anda) di BING APIhxxp://www.bing.com/developers/appids.aspx
Step 2
Membuat / Memodifikasi file HTACCESS :isi file htaccess dengan :
RewriteEngine On
RewriteRule ^q-(.*)\.html$ suggestion.php?cari=$1
Step 3
Membuat File AGC Engine :1. Buat file suggestion.php
2. Copy Script dibawah ini kedalam suggestion.php, Jangan lupa ganti teks bertuliskan BING API DISINI dibawah dengan BING API situs anda.
<?
if ($_GET['cari']) {
// pertahankan huruf kecil
if ($_GET['cari'] != strtolower($_GET['cari'])) header("Location: ".strtolower($_GET['cari']));
$st_keyword = strtolower($_GET['cari']);
$replace_a = array("/","-",".html");
$replace_b = array("", " ", "");
$st_keyword = str_replace($replace_a, $replace_b, $st_keyword);
$st_keyword = ucwords($st_keyword);
$agc_title = "{$st_keyword}";
?>
<h2 class="title">Suggestion <?php echo $agc_title; ?> :</h2>
<div class="entry"><p>Your search <strong><?php echo $agc_title; ?></strong> did not match any documents. In the absence of a better solution, you can try the suggestion bellow.</p>
<?php
function CleanFileNameBan($result){
//masukkan kata kunci satu persatu untuk menghindari kata-kata yang tidak diinginkan.
$bannedkey = array("porn","sex","bitch");
$result = str_replace($bannedkey, '',$result);
$result = trim($result);
return $result;
}
function url_title($a)
{
$a = CleanFileNameBan($a);
$data_a = array(""", " ", "?", "&");
$data_b = array("", "-", "", "");
$a = str_replace($data_a, $data_b, $a);
$a = preg_replace("/[^0-9a-z]+/i","-", $a);
$a = substr($a,0,100);
$a = trim($a,"-");
if (empty($a)) $a = "statimo";
return strtolower($a);
}
define('BING_API_KEY', 'BING API DISINI');
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'); // 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='.BING_API_KEY; //ganti ABCDEFG dengan kode api BING
$searchurl .= '&Query='.urlencode($termstring);
$searchurl .= '&Sources=Web';
$searchurl .= '&Web.Count=7'; //results count
$searchurl .= '&Web.Offset=0';
//$searchurl .= '&Web.Options=DisableHostCollapsing+DisableQueryAlterations';
$searchurl .= '&Web.Options=DisableHostCollapsing';
$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;
}
$bingresults = perform_bing_web_search($st_keyword);
$bing_i = 0;
foreach ($bingresults as $result) {
$judul = htmlspecialchars(CleanFileNameBan($result['title']));
$tautan = url_title($judul);
$tautan_host = parse_url($result['url'], PHP_URL_HOST);
if ($tautan_host == $_SERVER['HTTP_HOST']) {
echo "<p><strong><a href=\"".$result['url']."\" title=\"".$judul."\">".$judul."</a></strong><br />";
echo CleanFileNameBan(strip_tags($result['abstract']));
echo "<br />Source: ".$tautan_host."</p>";
} else {
echo "<p><strong><a href=\"http://".$_SERVER['HTTP_HOST']."/q-".$tautan.".html\" title=\"".$judul."\">".$judul."</a></strong><br />";
echo CleanFileNameBan(strip_tags($result['abstract']));
echo "<br /><small>Source: <a href=\"".$result['url']."\" rel=\"nofollow\">".$tautan_host."</a></small></p>";
}
$bing_i++;
}
if (!$bing_i) {
echo "<h2 class=\"title\">No result</h2>";
}
?></div><!-- /#entry -->
<?
}
?>
Oke selesai deh otak-atik PHP,, sekarang coba jalankan dengan URL Sintak :
Code:
http://domainkamu.com/q-[keyword]-[keyword]-[keyword].html
ganti keyword dengan kata kunci yang kamu inginkan.
Perlu Di ingat :
Di htaccess saya masukkan awalan q- , ini untuk membedakan. Dan awalan ini wajib. Karena kalau tidak, semua link akan diarahkan ke suggestion.php , jadi intinya hanya url yang berawalan q- (http://domainkamu.com/q-bla-bla-bla.html) saja yang akan bisa menuju halaman AGC (suggestion.php)
Selesai sudah trik kali ini, tapi ingat dengan keuletan anda, anda bisa mengembangkannya dengan memanfaatkan AGC engine ini ke halaman Search anda. Dan jangan lupa menambahkan database baru sebagai Latest Query nya. Print dibagian footer biar lebih keren.
Tambahan :
Tips Mendapatkan Keyword dari Pengunjung Yang Nyasar ke Situs Kita
<?
if (isset($_SERVER['HTTP_REFERER'])) { //Ini ngecek apakah Referrer ada atau kosong
function search_engine_query_string($url = false) { //ini fungsi parsing keyword dari Google,Bing,Yahoo
if(!$url) {
$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false;
}
if($url == false) {
return '';
}
$parts = parse_url($url);
parse_str($parts['query'], $query);
$search_engines = array(
'bing' => 'q',
'google' => 'q',
'yahoo' => 'p'
);
preg_match('/(' . implode('|', array_keys($search_engines)) . ')\./', $parts['host'], $matches);
return isset($matches[1]) && isset($query[$search_engines[$matches[1]]]) ? $query[$search_engines[$matches[1]]] : '';
}
$keyword = search_engine_query_string($_SERVER['HTTP_REFERER']); //Jalankan Fungsi akhirnya keyword didapatkan
}
?>