Simple JAKIM esolat wrapper
Last 2 weeks, I emailed a proposal to JAKIM regarding to create e-solat API. I think it will benefits programmer who want to use e-solat data in their own application. I know there is code/formula out there we can use.. but for me, I rather prefer to use data provided by the authority party.
Alhamdulillah, JAKIM reply my email and give me an opportunity to present my proposal last week. The rest, I let them to make a decision.
Meanwhile,I create simple e-solat wrapper to wrap content from e-solat website and convert to json object.
$data = file_get_contents('http://www.e-solat.gov.my/solat.php?kod='.$kod);
$data = strip_tags($data, '<table><tr><td></td></tr></table>');
$data = str_replace(" ", "", $data);
$dom = new DOMDocument();
$dom->prevservWhiteSpace = false;
$dom->loadHTML($data);
$trs = $dom->getElementsByTagName('tr');
foreach ($trs as $tr) {
$td = $tr->getElementsByTagName('td');
$result = array();
foreach ($td as $row) {
$result[] = trim($row->nodeValue);
}
$results[] = $result;
}
$data = array();
$data['kawasan'] = $results[0][0];
$data['tarikh'] = trim($results[1][0], 'JAKIM');
$data['kiblat'] = $results[3][1];
$data['gmt'] = $results[2][1];
$data['jadual'][$results[5][0]] = $results[5][1];
$data['jadual'][($results[6][0])] = $results[6][1];
$data['jadual'][($results[7][0])] = $results[7][1];
$data['jadual'][($results[8][0])] = $results[8][1];
$data['jadual'][($results[9][0])] = $results[9][1];
$data['jadual'][($results[10][0])] = $results[10][1];
$data['jadual'][($results[11][0])] = $results[11][1];
$json = json_encode($data, JSON_FORCE_OBJECT); //force json as an object
Test online : http://api.ibnuyahya.com/solat.php
download source : http://api.ibnuyahya.com/solat.php.txt
If you’re linux user, maybe this post will help you to put solat time in conky

e-Solat Plugin for Wordpress | funzool at his learning ground 11:11 am on May 20, 2011 Permalink |
[...] others, you may want to implement using the wrapper from here: http://ibnuyahya.com/simple-jakim-esolat-wrapper/ If you enjoyed this article, please consider sharing [...]
nginx: redirect old url « system reboot! 9:21 pm on November 18, 2011 Permalink |
[...] paparan page tidak dijumpai atau 404 error. Contohnya, url lama bagi salah satu pos saya adalah http://ibnuyahya.com/simple-jakim-esolat-wrapper/lang/en-us/. Memandangkan saya tidak lagi menggunakan plugin multi-language.. maka url tersebut tiada post-fix [...]
adiman 10:46 am on January 26, 2012 Permalink |
Any progress on the official API from JAKIM?
Btw, nice interim solution! Kudos
ibnuyahya 1:09 pm on January 26, 2012 Permalink |
No progress. Dah masuk 2nd meeting dengan bos diaorang tapi… mungkin diaorang sibuk sangat kot. Nak kata mahal sangat, tak juga sebab aku dah bagitau menda ni aku akan develop FREE je. no charge at all sebab tujuan utama aku adalah nak mudahkan para programmer diluar sana menghasilkan aplikasi berdasarkan database esolat dari Jakim.
adiman 7:00 pm on January 29, 2012 Permalink |
Okeh, kalau dah berjaya implement API, kasitau ya!
litium {at} gmail
Thanks.
ibnuyahya 8:43 pm on January 29, 2012 Permalink |
InsyaAllah.
adiman 12:07 pm on February 21, 2012 Permalink |
Currently aku tengah buat sistem yang pull data from api ni. Just in case dah propose tu, kalau ada feature utk pull by date pastu option return data daily/weekly/monthly/year bagus jugak.
or kalau lagi best, kita just suppy long/lat location dengan date je. : )
ibnuyahya 5:09 pm on February 21, 2012 Permalink |
propose tu memang dah propose.. tapi keputusan di pihak sana. Hang try la propose lagi.. mana la tau depa tak suka aku . hehe