Follow me not!


Fibonacci

19 July 2007 11:01:38 WIB, under category PHP

Script berikut akan menggenerate deret Fibonacci.
[code] $a = 1;
$b =1;
while(1){
$c = $a+$b;
$a = $b;
$b = $c;
echo $c."\n";
}
?>[/code]

Mungkin cara saya salah.. Tapi who care? Selama outputnya masih fibonaci juga ha.ha.ha.. Ingat, script ini akan menggila saat dijalankan ^o^


Mendapatkan lagu dari ijigg

18 June 2007 02:16:45 WIB, under category PHP

Tutorial berikut ditujukan untuk mengetahui asal mula script ijigg downloader bekerja. iJigg adalah situs upload lagu-lagu mirip dengan Youtube, bedanya iJigg hanya audio. Sebagai contoh, kita akan menggunakan URL http://www.ijigg.com/songs/V2BGDDEP0

Pertama, kita lihat source dari halaman http://www.ijigg.com/songs/V2BGDDEP0 lalu kita cari file SWF-nya. Kenapa SWF? Karena dengan mudah bisa dilihat dari player-nya bahwa situs tersebut menggunakan file SWF untuk memutar lagu.

[code]
scale="noscale" wmode="transparent">
[/code]

Nah, disitu kita lihat bahwa ada suatu nilai dari URL yang dimasukkan ke dalam file SWF (jiggPlayer.swf), yaitu V2BGDDEP0. Berarti ada sesuatu di dalam file jiggPlayer.swf tersebut yang membaca nilai V2BGDDEP0 dan mencocokkan dengan database lagu (masih perkiraan).

Langkah selanjutnya, mari kita download file jiggPlayer.swf dan kita lihat scriptnya. Dalam praktek ini, saya menggunakan SWF Decompiler versi trial. Hey, ga perlu membajak. Versi trial bisa menampilkan dua action script, sedangkan full versionnya bisa menampilkan semua action script yang ada. Secara file jiggPlayer.swf sudah terlacak alur programnya di action script pertama, maka ga ada gunanya kita membajak SWF Decompiler ini!

swf decompiler

Dapat kita lihat pada baris ke 265, file SWF ini ternyata ngecek ke http://www.ijigg.com/cgi-bin/loadSongData.cgi?songID= di mana di belakang tanda samadengan kemungkinan besar adalah V2BGDDEP0, atau id unik dari database lagu-lagu. Tak perlu panjang lebar, mari kita cek apa yang akan keluar jika kita buka URL http://www.ijigg.com/cgi-bin/loadSongData.cgi?songID=V2BGDDEP0 menggunakan browser web.

Ho.. ho.. ho.. file XML saudara-saudara!
[code]http://staticmdb-001.ijigg.com/songdata/1179482941545068586222048a548ce224ef805a12.mp3
Glory! Glory! MAN. UNITED - GLORY GLORY Man Utd
02:32
467
0
[/code]

Kita baca file XML tersebut dan kita dapati bahwa URL menuju lagu tersebut diapit oleh tag <songLocation> dan </songLocation>. Anda bisa menggunakan XML parser atau cara apapun yang paling nyaman menurut Anda. Silahkan dikembangkan, silahkan membuat layanan downloader, silahkan berkarya terus-menerus ^_*


iJigg downloader script

12 June 2007 17:32:04 WIB, under category PHP

Script berikut bisa digunakan untuk mendapatkan file mp3 yang terdapat di situs iJigg.com. Silahkan dikembangkan, dimodifikasi atau diapakan saja.

[code] // this is used to get url content
function get_url_content($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

// this function used to retrieve value inbetween specific delimiter
function get_inbetween($tag1,$tag2,$string) {
if (eregi("$tag1(.*)$tag2", $string, $out)) {
$outdata = $out[1];
}
return $outdata;
}

// this function used to download music from ijigg.com
function get_ijigg($url){

// get the music_id
$ari = explode("/",$url);
$m_id = array_pop($ari);

// retrieve xml files
$data = get_url_content("http://www.ijigg.com/cgi-bin/loadSongData.cgi?songID=".$m_id);

// retrieve path into music files
$hasil = get_inbetween("","",$data);

// yell it loud
return trim($hasil);
}

echo get_ijigg("http://www.ijigg.com/songs/V2CE7AAPAD");
?>
[/code]


Fungsi PHP untuk nge-Ping

29 May 2007 13:08:22 WIB, under category PHP

Ping di sini tidak ada kaitannya dengan jaringan komputer apalagi request timed out. Ping di sini adalah suatu teknik untuk meminta suatu web penyedia layanan ping (misalnya, Technorati) agar memeriksa situs kita yang baru saja kita perbarui.

[code]
function blog_ping($url,$pingto){
$var= array('url'=>'

weblogUpdates.ping

Any Name '.$url.' ');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pingto);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $var);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

// dan ini cara pemakaian
echo blog_ping("http://the.sandalian.com","http://rpc.technorati.com/rpc/ping");
?>
[/code]


Senjata untuk grabbing halaman web

24 May 2007 13:12:57 WIB, under category PHP

Banyak sekali yang menanyakan perihal grabbing halaman website untuk ditampilkan di situs kita. Dan kebanyakan menanyakan script siap jadi. Duh!

Begini ya mas-mas, mbak-mbak, pakdhe, om dan tante. Teknik grabbing akan berbeda-beda untuk tiap-tiap website. Tapi intinya sama. Baca HTML dari suatu halaman, lalu pilih mana yang akan diambil. Mari kita lihat script andalan saya untuk melakukan grabbing.

Fungsi pertama, membaca halaman website dan masukkan ke dalam string:[code] function get_content_of_url($url){
$ohyeah = curl_init();
curl_setopt($ohyeah, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ohyeah, CURLOPT_URL, $url);
$data = curl_exec($ohyeah);
curl_close($ohyeah);
return $data;
}
?>
[/code]

Nah, fungsi ini akan menghasilkan tag-tag HTML yang harus kita analisa untuk menentukan batas mulai pemotongan dan batas akhir.

Lalu fungsi kedua, adalah sebuah regex sederhana untuk mengambil teks yang diapit suatu tag tertentu.[code] function getContentByTag($tag1,$tag2,$string) {
if (eregi("$tag1(.*)$tag2", $string, $out)) {
$outdata = $out[1];
}
return $outdata;
}
?>
[/code]

Di fungsi yang kedua, parameter pertama tidak harus suatu tag HTML, tapi bisa juga suatu string. Happy grabbing!


Youtube Downloader Menggunakan PHP

WIB, under category PHP

Script ini akan membaca halaman Youtube lalu mencari link menuju file video-nya. Lalu, file video tersebut tinggal di download menggunakan download manager. Mungkin sudah ada yang pernah baca listing di bawah ini, saya memang sudah menyebarkannya kemana-mana he.he.

Script ini membutuhkan CURL. Kenapa CURL? Karena kebanyakan webhosting sudah mendisable remote [php]fopen()[/php]. Ok, segera saja kita mulai. Ada lima fungsi di sini, mari kita bahas satu-persatu.

Yang pertama, membaca isi halaman web youtube yang menampilkan video. Di halaman ini, tercantum petunjuk di mana file video sebenarnya tersimpan. Makanya kita harus baca dulu isi halaman youtube-nya:[code]
function get_content_of_url($url){
$ohyeah = curl_init();
curl_setopt($ohyeah, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ohyeah, CURLOPT_URL, $url);
$data = curl_exec($ohyeah);
curl_close($ohyeah);
return $data;
}
?>
[/code]

Yang kedua, kita ambil string yang mengandung petunjuk di mana lokasi file video sebenarnya tersimpan:[code]
function get_flv_link($string) {
if (preg_match('/\/player2\.swf\?(.*)", "a"/', $string, $match)) {
$url = $match[1];
return 'http://youtube.com/get_video.php?'.$url;
}
}
?>
[/code]

Selanjutnya, kita buat fungsi yang bertugas mengunjungi link tersebut. Jika link tersebut dibuka menggunakan browser, kita akan terlempar (forwarded) ke file video tersebut dan otomatis akan muncul dialog download file. Nah, kita manfaatkan CURL untuk mencari tahu di mana kita terlempar:[code]
function get_http_header($url){
$uh = curl_init();
curl_setopt($uh, CURLOPT_URL, $url);
curl_setopt($uh, CURLOPT_HEADER, 1);
curl_setopt($uh, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($uh);
curl_close($uh);
return $res;
}
?>
[/code]
Wait, fungsi ini hanya akan menampilkan HTTP Header. Kita ngga butuh semua, hanya butuh lokasi kemana kita ter-forward.

Nah, fungsi yang ini untuk membaca HTTP Header dan menampilkan lokasinya:[code]
function show_url($http_header){
$arai = explode("\n",$http_header);
foreach($arai as $ini){
if(eregi("location",$ini)) $url = $ini;
}
list($sampah,$hasil) = explode("Location:",$url);
return str_replace("\n","",trim($hasil));
}
?>
[/code]

Terakhir, kita sederhanakan semua fungsi di atas dan bungkus jadi satu fungsi:[code]
function download_youtube($url){
$data = get_content_of_url($url);
$next_url = get_flv_link($data);
$data = get_http_header($next_url);
return show_url($data);
}
?>
[/code]

Jadi deh…
Eit, lalu cara pakenya gimana?[code]
$url = "http://youtube.com/watch?v=SAQZ0BDXn48";
echo download_youtube($url);
?>
[/code]
gitu deh cara pakenya… Kalo pengen lihat demo bagaimana script ini bekerja, tinggal meluncur ke mobi.web.id aja. Cuma di sana udah dipercantik menggunakan ajax.

Well guys, sekian tutorial kita kali ini ^_*

 


« Newer Posts