Ambil Full Artikel dengan PHP | Auto Post Di Blogspot [PART2]

Nubie mau share lagi , Ini lanjutan dari tread yang ini

hxxp://www.adsense-id.com/forums/showthread.php/98142-Auto-Post-Di-Blogspot-dengan-Zend-Framework-(php)

Di postingan sebelumnya kita sudah sama-sama membahas login dan post di blogspot dengan menggunakan Zend Framework,

Disini saya coba melengkapi dengan cara mendapatkan Full artikel dengan php,

Cara ini di gunakan untuk situs target yang ada rss nya, meskipun sebetulnya biar blog itu gak ada RSSnya karena sengaja di hilangkan oleh yang punya, masih tetap bisa hanya harus di rubah scriptnya, nanti di bahas lebih lanjut di tread selanjutnya


Langsung aja deh,, ini pertama kita buat function serangkaian Curl biar gampang nantinya kalau mau make,, karena fungsi ini akan di pake berkali-kali,
ini contohnya,,
PHP Code:
<?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;
}
?>



 Gemana cara make fungsi ini tentu saja dengan cara ini ambilcurl("Link target")

Pertanyaannya adalah gemana cara mendapatkan link target langsung ke post? bisa macem-macem caranya, saya ambil contoh salah satunya dengan ngambil dari Feed, jadi feed di sini hanya di gunakan untuk ngambil link postnya saja,,

Gemana caranya sebetulnya ada banyak cara membaca Feed salah satunya dengan funsi ini simplexml_load_string, tapi saya gak akan pake cara itu, saya hanya akan menggunakan gabungan dari strlen, strpos dan substr apa gerangan mereka itu silahkan di cari di PHP.net aja di sana sudah lengkap keterangannya,

Supaya lebih praktis kita buat dulu fungsi gabungan dari strlen, strpos dan substr, yang nantinya di gunakan untuk mengambil yang perlu dan menyingkirkan yang gak perlu dari target,,

kita buat funsinya dulu,, mmmm kita beri nama apa ya?? "sapusapu" aja deh sesuai fungsinya untuk nyapu wkwkwwk


lihat contohnya begini,,
PHP Code:
<?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;
}
?>

 Gemana cara make script ini,, kita ambil contoh gini

$text = 'ini teknya <div class="contoh"> Text di sini yang mau di ambil</div> yang ini di buang ';


maka kita bisa menggunakan fungsi sapu-sapu yang sudah kita buat dengan cara seperti ini,,


PHP Code:
<?php
$text 
'ini teknya <div class="contoh"> Text di sini yang mau di ambil</div> yang ini di buang ';$hasil sapusapu($text'<div class="contoh">''</div>');
echo 
$hasil;?>
 maka hasilnya jadi "Text di sini yang mau di ambil"


Oke sekarang kita coba rangkaikan beberapa function yang sudah kita buat,,

ini proses ngambil full artikel sebagai kelinci percobaannya pake dari situs CNN aja deh,
PHP Code:
<?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,2); //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 //sekarang kita sudah dapat link post dan judul, tapi masih kurang konten, ini proses ngambil kontent,foreach ($isifeed 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);
}
print_r($isilengkap); //untuk ngecek apakah kontennya sudah keluar atau belum, ini bisa di hapus aja kalau dah yakin?>

Oke kalau gak ada yang keliru,, semua yang di butuhkan untuk posting sudah ada di dalam array $isilengkap, Untuk tagnya nanti belakangan aja ya,, biasanya ane ngambil dari keyword di head tapi rupanya di situs CNN gak pake itu jadi mesti di akalin lagi nanti kita bahas lain waktu sementara isi uncategories aja dulu, soalnya itu gak boleh kosong.


Selanjutnya kita akan masukan Titel dan Konten yang sudah kita dapatkan ke postingan,, caranya pake Zend Framework seperti yang sudah saya bahas di tread sebelumnya,, monggo tengok linknya di atas,,

setelah function Zend Framework kita masukan (taroh di paling atas aja deh biar gampang) kita buat satu script lagi, untuk mengolah array dari $isilengkap

ini dia script nya

PHP Code:
<?phpforeach ($isilengkap as $siappos) {createPublishedPost($siappos['judul'], $siappos['konten'],$siappos['tag']);
}
?>

Secript di atas di tambah tread yang sebelumnya sebetulnya sudah dapat bekerja dengan baik, artinya sudah bisa posting otomatis, tinggal jalankan pake cron job, tapi masih ada 1 permasalahan lagi,, bagaimana untuk menghindari Duplikat Post??? Insya Allah saya lanjutkan di tread berikutnya,,

Mari kita diskusi dulu sebelum melangkah lebih jauh,, Biar Ilmunya nambah,,

Update Lanjutan Auto Post Blogspot

hxxp://www.adsense-id.com/forums/showthread.php/98868-Menghindari-Duplikat-Content-di-Auto-Post-Blogspot-(bagian-3)







About this entry

Related Post