Baru saja saya menulis script kecil untuk mengambil gambar secara acak dari account Flickr saya. Script ini membutuhkan CURL dan tidak membutuhkan library XML apapun karena RSS feed dari Flickr saya perlakukan seperti file teks biasa.
Saya memanfaatkan fungsi yang pernah saya tulis sebelumnya, yaitu fungsi untuk mengambil konten suatu URL ke dalam suatu variabel:[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]
Dan yang kedua adalah fungsi yang baru saja saya tulis. Fungsi ini akan membaca RSS feed dari account saya di Flickr lalu memilah-milah dan mengeluarkan satu link gambar saja:[code]
function flickrize($url){
$stream = get_content_of_url($url);
$datas = explode("\n",$stream);
Cara menggunakannya sangat mudah, hanya dengan memasukkan URL dari RSS feed saja. Silahkan Anda buka halaman Flickr Anda lalu view source dari halaman tersebut. Temukan bagian berikut:[code]
[/code]
Nah, link menuju RSS feed adalah http://api.flickr.com/services/feeds/photos_public.gne?id=94992356@N00&lang=en-us&format=rss_200. Mari kita gunakan dalam sampel:
Dan outputnya adalah http://farm1.static.flickr.com/43/79290443_6e9f8581f0_o.jpg, tinggal gunakan dalam tag IMG saja bukan?
Sebagai curhat colongan, script di atas saya gunakan dalam mainan saya yang baru di http://hi.sandalian.com. Desainnya ngambil dari desain web saya jaman jadul, antidiansastro.com (sudah mati). Selamat bersenang-senang ^_^
Setelah lama tidak bisa berfungsi, akhirnya youtube downloader saya bisa digunakan lagi. Secara teknis ada penyederhanaan script yang saya gunakan. Sekarang tidak perlu pusing seandainya layout halaman youtube.com berubah-ubah.
Di beberapa postingan di blog ini sering banget diserang sepam. Salah satu ciri utama sepam tersebut adalah menuliskan URL ke dalam form komentar, kemungkinan untuk mendapatkan backlink agar situs dia naik posisi di search engine.
Berdasar sifat sepam tersebut, saya tulis script sederhana agar komentar yang mengandung empat kata ‘http://’ atau lebih (yang biasa dituliskan dalam link) akan ditolak dan tidak dimasukkan dalam database.
Kemarin saya menulis script PHP untuk mendapatkan nilai DPI dari suatu gambar JPG. Yang saya maksud DPI itu, resolusi gambar itu lho. Misalnya 72 DPI atau 300 DPI (Dots per Inch). Nah, gara-gara diprotes oleh progremer tanpa blog, berikut ini revisinya.
Kalau kemarin saya tulis bahwa kita hanya perlu mengambil byte ke 14-18, kali ini saya koreksi bahwa byte yang perlu diambil hanyalah byte 15, 16, 17 dan 18. Selain itu saya ganti fungsi file_get_contents() dengan fopen() dan fread() karena kita hanya butuh paling banyak 20 byte pertama, bukan keseluruhan isinya.
Script ini berawal dari tugas di kantor untuk mencari cara mengetahui DPI dari suatu image. Googling mentok, kebanyakan menyarankan menggunakan ImageMagick yang berarti harus ngoprek server dan tentu saja menjadi solusi terakhir. Lalu akhirnya nemu sedikit petunjuk di http://www.thescripts.com/forum/thread5948.html. Intinya, ukuran DPI ini tersimpan di byte 14-18 dari suatu file JPG.
Script berikut ini akan mengambil byte ke 14 sampai 18 dari suatu file JPG lalu dikonversi ke hexa. Kemudian dibagi dua bagian untuk mendapatkan nilai X dan Y. Setelah nilai X dan Y ketemu, lalu dikonversi kembali ke angka desimal agar lebih mudah dibaca. Bagi Anda yang lebih mudah membaca 0064 daripada 100, silahkan hilangkan fungsi hexdec() dari fungsi di bawah ini.
Berikut ini fungsi PHP untuk mengetahui DPI dari suatu gambar JPG, untuk format gambar lainnya, blum sempat ngoprek:[code]
function get_dpi($file){
$data = bin2hex(substr(file_get_contents($file),14,4));
$x = substr($data,0,4);
$y = substr($data,4,4);
return array(hexdec($x),hexdec($y));
}
// contoh penggunaan
print_r(get_dpi('128.jpg'));
?>[/code]
Script di atas sukses saya coba untuk ngecek resolusi file JPG yang saya buat menggunakan Adobe Photoshop. Untuk file JPG hasil dari kamera, entah mengapa hasilnya jadi aneh. Ada yang bisa menjelaskan hal ini? Atau mungkinkah tidak tersimpan informasi DPI di dalam foto hasil jepretan kamera digital?
Pada tulisan sebelumnya, tentang script SMS jadwal tayang bioskop 21, banyak komentar yang menanyakan solusi bagi operator seluler non Mentari. Untuk kartu Matrix, Anda bisa menggunakan libmatrixsms instead of libmentarisms. Silahkan diubek-ubek saja, bukan script yang rumit kok. Dan cara pemaikaiannya pun relatif mudah, ada contoh yang disertakan.
Lalu bagaimana dengan pemakai AS, XL, Simpati atau yang lain? Tenang saja, ada cara cukup mudah kok untuk melakukannya.
Silahkan Anda yang tidak memakai Mentari maupun Matrix iuran untuk beli kartu perdana Mentari. Setelah itu, silahkan mendaftar ke klub-mentari.com dan rubah scriptnya agar mengirim sms ke semua peserta iuran tersebut.
Kebetulan SMS gratis dari klub-mentari.com jumlahnya adalah 10 buah SMS per hari, jadi Anda bisa mencari kelompok sebanyak 10 orang. Tinggal iuran Rp. 1000,- per orang lalu beli perdana Mentari. Mudah sekali bukan?
Saatnya sharing script yang akan otomatis mengirimkan SMS ke nomer henpon kita setiap pagi yang berisi jadwal tayang bioskop 21 Yogyakarta. Saya belum nyoba untuk kota lain, silahkan dicoba saja ganti URL dengan URL kota lain.
Script ini memanfaatkan libmentarisms untuk mengakses klub-mentari.com, jadi Anda harus punya account di sana jika ingin memanfaatkan script ini. Saya lupa di mana mendapatkan libmentarisms, namun di dalam script tersebut terdapat alamat email penulisnya. Silahkan hubungi langsung penulisnya jika ada komplain.
Scriptnya bisa Anda lihat di http://sandalian.com/code/sms-jadwal-bioskop.phps. Silahkan dicopy, lalu dirubah beberapa parameter. Terutama bagian username dan password Anda di klub-mentari.com, juga nomer telepon Anda.
Selanjutnya, taruh script tersebut di dalam webhosting Anda. Dalam contoh, saya taruh di /public_html/grabber. Lalu tinggal seting Cron sebagai berikut:
Saya pilih jam 21 karena server saya kebetulan berada di luar negeri, jadi harus saya sesuaikan agar terkirim pada jam 10 pagi WIB.
Untuk uji coba, silahkan dicoba dulu akses script tersebut melalui browser langsung. Tentu saja ekstensinya bukan .phps melainkan .php agar bisa dieksekusi oleh server.
Dulu saya pernah menulis script untuk download video dari Youtube menggunakan PHP. Namun beberapa hari belakangan, tepatnya beberapa hari sebelum PestaBlogger, Youtube merubah source code mereka sehingga script saya ndak bisa jalan. Lalu ada mas-mas bule yang komplain karena script saya ndak jalan he.he.
Untung pas di acara pestabloger saya ndak bawa notbuk, bisa-bisa saya coding pas Pak Menteri menantang para blogger membuat Mars Blogger Indonesia ^o^
Berikut ini script yang lama:[code]
function get_flv_link($string) {
if (preg_match('/\/player2\.swf\?(.*)", "movie_player"/', $string, $match)) {
$url = $match[1];
return 'http://youtube.com/get_video.php?'.$url;
}
}
?>
[/code]
dan berikut ini bug fix-nya..[code]
function get_flv_link($string) {
if (eregi("watch_fullscreen\?video_id=(.*)&title=", $string, $out)) {
$outdata = $out[1];
}
return 'http://youtube.com/get_video.php?video_id='.$outdata;
}
?>
[/code]
Perubahan minor, tapi cukup membuat pusing beberapa hari ini.. Bagi yang berminat, silahkan menuju ke halaman download ^_^
Script ini terinpirasi dari program semacam netcat, yang biasa saya gunakan untuk melakukan port scanning. Secara PHP mempunyai kemampuan untuk melakukan socket connection, maka PHP bisa digunakan untuk keperluan ini.
Dijalankan melalui modus CLI (command line) seperti: c:\php\php.exe scanner.php 192.168.11.1 10 30
yang akan melakukan scanning pada IP 192.168.11.1 di port 10 sampai port 30.
Setelah beberapa hari ini berkutat dengan Winbinder untuk membuat aplikasi selanjutnya, akhirnya tadi mulai menemukan titik terang kenapa window kedua tidak bekerja sebagaimana mestinya.
Ternyata, Winbinder yang bisa membuat aplikasi desktop menggunakan bahasa pemprograman PHP ini belum support dengan MDI, jadi nantinya saya akan merubah tampilan aplikasi tersebut.
Penasaran dengan aplikasi tersebut? Tunggu saja tanggal mainnya. Tengkyu buat Kang Kiyat yang udah membantu bikin spare part-nya pake Delphi ^_^