Menghindari Duplikat Content di Auto Post Blogspot [PART3]

hare nubie berikutnya adalah Menghindari DUplikat kontent di Auto Post Blogspot

Sebelum melanjutkan pastikan anda sudah mengikuti tread saya yang di bawah ini
  1. http://www.adsense-id.com/forums/sho...ramework-(php)
  2. http://www.adsense-id.com/forums/sho...pot-(bagian-2)

Sederhana saja sih, untuk mengetahui kontent ini sudah pernah di post atau belum, tentu kita harus mencatat konten yang kita post, sehingga hal itu dapat menghindari post duplikat dari Auto Post di blogspot.

Trik ini sering saya terapkan untuk di wordpress juga, sehingga meringankan kerja plugin duplikat eraser yang memakan resource cukup besar karena harus ngeload semua judul di database,

Menghindari duplikat Post yang akan saya bahas di sini di tujukan hanya untuk melengkapi Auto Post di Blogspot yang sudah sama-sama kita buat, tapi setidaknya bisa nambah-nambah ide untuk di terapkan di tempat lain untuk keperluan lain.

Oke kita langsung saja ke pokok permasalahan,,
cara Kerjanya gini gan, jadi link yang sudah di post melalui script Auto blogspot akan kita catat dalam sebuah file, kemudian catatan tersebut akan kita buka untuk memfilter postingan yang akan kita post berikutnya,,

Untuk keperluan itu kita buat dulu Function untuk membaca catatan,

ini scriptnya jangan lupa sebelumnya kita buat dulu file untuk mencatat, jangan lupa kasih akses cmodnya kasih 777 aja deh, toh bukan file penting ini,
PHP Code:
<?php //define nama file yang di pakai untuk mencatatdefine('FILE_LINK''datalink.html');?>
<?php 
function isitext(){$daritext file_get_contents(FILE_LINK);$daritext explode('<br/>',$daritext);
return 
$daritext;
}
?>

Kemudian kita buat lagi function untuk mencatat link, 

PHP Code:
<?phpfunction catatlink($text){$daritext isitext();$gabung array_merge($text,$daritext);$gabung array_slice($gabung,0,100);$textimplode implode('<br/>',$gabung);$fp fopen(FILE_LINK"w");fwrite($fp$textimplode);fclose($fp);
}
?>

Kemudian kita filter,, link nya, di penggal di tengah, saat menunju proses ngambil full kontent,, contoh scriptnya begini

PHP Code:
<?php
$textresult
[] ='';
foreach (
$isifeed as $textproses) {
if (!
in_array($textproses['judul'],isitext())){$textresult[] = $textproses;
}
}
$textresult array_filter($textresult);$textresult array_slice($textresult,0,1);?>

 yang harus di perhatikan adalah $isifeed merupakan array dari script ambil feed,, dan $textresult adalah hasil array yang sudah di filter,,


Oke sekarang kita gabungin aja, dengan script yang ada di tread sebelumnya jadinya seperti ini

PHP Code:
<?php
define
('FILE_LINK''datalink.html');?>
<?php 
function isitext(){$daritext file_get_contents(FILE_LINK);$daritext explode('<br/>',$daritext);
return 
$daritext;
}
?>
<?phpfunction catatlink($text){$daritext isitext();$gabung array_merge($text,$daritext);$gabung array_slice($gabung,0,100);$textimplode implode('<br/>',$gabung);$fp fopen(FILE_LINK"w");fwrite($fp$textimplode);fclose($fp);
}
?>

<?phpfunction sapusapu($text$awal$akhir){$posisistart strpos($text$awal);$text substr($text, ($posisistart strlen($awal)));$posisiakhir strpos($text$akhir);$text substr($text,0$posisiakhir);
return 
$text;
}
?>

<?phpfunction ambilcurl($link){
  
function_exists('curl_init') or die("curl library is still not installed yet on your machine!");
      
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
  
$curl curl_init();
    
curl_setopt($curlCURLOPT_USERAGENT$useragent);
  
curl_setopt($curlCURLOPT_URL$link);
  
curl_setopt($curlCURLOPT_FOLLOWLOCATION1);
  
curl_setopt($curlCURLOPT_HEADER0);
  
curl_setopt($curlCURLOPT_RETURNTRANSFER1);
  
curl_setopt($curlCURLOPT_ENCODING"");
  
$curlData curl_exec($curl);curl_close($curl);
return 
$curlData;
}
?>

 <?php //ambil Judul dan url ke single post melalui feed$feed ambilcurl('http://rss.cnn.com/rss/cnn_topstories.rss');$feed explode('<item>'$feed); //feed di pecah dengan batas <item>$feed array_slice($feed,1,40); //di batasi cukup 1 aja kalau mau lebih ganti angka yang di belakang,foreach ($feed as $tiapfeed){$isifeed[]= array('judul' => sapusapu($tiapfeed,'<title>','</title>'),'link' => sapusapu($tiapfeed,'<link>','</link>'),
);
}
?>

<?php
$textresult
[] ='';
foreach (
$isifeed as $textproses) {
if (!
in_array($textproses['judul'],isitext())){$textresult[] = $textproses;
}
}
$textresult array_filter($textresult);$textresult array_slice($textresult,0,1);?>

 <?php //sekarang kita sudah dapat link post dan judul, tapi masih kurang konten, ini proses ngambil kontent,foreach ($textresult as $tiapisifeed) {$kontenpost ambilcurl($tiapisifeed['link']);$isiartikel sapusapu($kontenpost ,'<ul class="cnn_bulletbin cnnStryHghLght">','<!--endclickprintinclude-->' ); //ini di rubah sesuai batasan artikel awal dan akhir$isiartikel strip_tags($isiartikel); //buang tag HTMLnya $isiartikel preg_replace('/\s+/'' '$isiartikel); //buang double space$isilengkap[] = array('judul' => $tiapisifeed['judul'],'link' => $tiapisifeed['link'],'konten' => $isiartikel,'tag' => 'uncategories'//tag nya nanti belakangan aja deh);
}
?>

 <?php foreach ($isilengkap as $jadi){$untukdicatat[] = $jadi['judul'];
echo 
'<h2>'.$jadi['judul'].'</h2>';
echo 
''.$jadi['konten'].'';
}
catatlink($untukdicatat);?>

Untuk mengetahui apakah script tersebtu sudah bekerja atau belum coba di load scriptnya via browser,, setelah itu di reload lagi, jika filter nya sudah bekerja maka hasil reload akan berubah menjadi post yang di bawahnya,, begitu seterusnya jika kita reload lagi,,
Ambil contohnya gini misalkan di dalam feed ada 4 judul

1.judul satu
2.judul dua
3.judul tiga
4.judul empat

Kita load pertama yang muncul adalah judul satu, kemudian di reload lagi maka yang muncul judul dua dan seterusnya,, untuk mereset hapus aja catatan link di dalam file datalink.html
datalink yang tercatat di file datalink.html di batasi jumlahnya (biar gak kepenuhan) bisa di lihat dalam functin catatlink($text) ada array_sclice sejumlah 100.

Oke jika gak ada yang keliru, scipt auto post di blogspot kita sudah di lengkapi dengan filter duplikat link,

Sekarang bagai mana jika situs target gak ada feed nya?? insya allah akan saya bahas di tread selanjutnya,

Kalau ada pertanyaan jangan sungkan-sungkan bertanya, karena saya sambil belajar juga biar lebih masak ilmunya,,, 




About this entry

Related Post