Selesai update website, kepikir untuk ngerjain fitur search di website. Kalau bikin sendiri kan susah, jadi mau memanfaatkan fasilitas google. Google emang menyediakan fasilitas untuk search, dengan membatasi pada situs tertentu. Caranya dengan nambahin teks "site:url" pada query. Misalnya "sms site:www.invosa.com", berarti akan mencari kata "sms" di situs www.invosa.com.
Setelah bisa nyoba, sekarang giliran ngambil isi website itu dengan php. Ketemu deh caranya, dengan
Cari sana-sini, trial and error, buka tutorial ke mana-mana, gak berhasil juga. Ternyata gak semudah yang dibayangkan. Sampai sore baru selesai. Jadi lebih dari setengah hari untuk nyari itu. Akhirnya dapat kode kayak gini:
Lumayan, nambah ilmu lagi. Setidaknya aku belajar ngambil file (remote), pakai PHP, terus belajar string replace, dan yang terpenting adalah belajar regular experssion.
Sore ini juga ada conference untuk project DVD Player. Tapi pas aku gabung, udah nggak ada pembicaraan lagi. Katanya sih chip untuk OSD bakalan ganti ... wah si Mbah seneng (atau malah sedih nih?).
Setelah bisa nyoba, sekarang giliran ngambil isi website itu dengan php. Ketemu deh caranya, dengan
fopen
biasa. Masalahnya, aku nggak mau header dan footer google (apalagi iklan-iklannya) ikut serta. Untunglah ada fasilitas regex (regular expression) di PHP. Lumayan, sambil belajar juga.Cari sana-sini, trial and error, buka tutorial ke mana-mana, gak berhasil juga. Ternyata gak semudah yang dibayangkan. Sampai sore baru selesai. Jadi lebih dari setengah hari untuk nyari itu. Akhirnya dapat kode kayak gini:
if (isset($txSearch) && ($txSearch != "")) {
$txSearch = str_replace(" ","+",$txSearch);
$tplContent = "http://www.google.com/search?q=$txSearch+site%3Awww.invosa.com&submit=Google+Search";
//echo file($tplContent);
if (($fp = fopen($tplContent,"r")) === false)
die ("ERROR");
$content = "";
while ($chunk = fgets($fp))
$content .= $chunk;
if (!$content) die("KOSONG");
// cari bagian search result aja
// dibatasi oleh tag DIV
// /is artinya case insensitif (i), terus termasuk line-break (s)
preg_match("/<div>.+<\/div>/is",$content, $matches);
$fcontents .= str_replace("/search?","http://www.google.com/search?",$matches[0]);
}
Lumayan, nambah ilmu lagi. Setidaknya aku belajar ngambil file (remote), pakai PHP, terus belajar string replace, dan yang terpenting adalah belajar regular experssion.
Sore ini juga ada conference untuk project DVD Player. Tapi pas aku gabung, udah nggak ada pembicaraan lagi. Katanya sih chip untuk OSD bakalan ganti ... wah si Mbah seneng (atau malah sedih nih?).
Comments