Sinema seanslarını yayınlamanızı gerektirecek bir site yapıyorsanız verileri çekeceğiniz bir yere ihtiyaç duyarsınız. Çünkü vizyonda olan onlarca filmin seanslarını tek tek girme işlemi çok fazla zaman alacaktır. Sürekli güncellik isteyen bir iş olması da cabası. Dolayısıyla bu işi çözmenin en basit yolu sinema seans verilerini güvenilir bir siteden çekmekten geçiyor. Sinema sitelerinden veri çekmeyi pek tavsiye etmiyorum. Google’ın “Movie Showtimes” isimli servisi neredeyse bu iş için yapılmış gibi 🙂
İlk olarak bilgileri çekebilmek için PHP Simple HTML DOM Parser isimli sınıfa ihtiyacımız var. Sınıfı buradan indirebilirsiniz. İndirdiğiniz simple_html_dom.php isimli dosyayı projenizle aynı klasörde tutmaya özen göstermelisiniz. Yoksa kodlarınız bir işe yaramayacaktır.
Sonrasında aşağıdaki kodları kullanarak sinema seanslarını çekmeye başlayabilirsiniz.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
header(‘Content-Type: text/html; charset=utf-8’);
require_once(‘simple_html_dom.php’);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, ‘http://www.google.com/movies?near=eskisehir’);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$html = str_get_html($str);
foreach($html->find(‘#movie_results .theater’) as $div) {
echo utf8_encode(“<strong>”.$div->find(‘h2 a’,0)->innertext.“</strong><br />”);
foreach($div->find(‘.movie’) as $movie) {
echo utf8_encode($movie->find(‘.name a’,0)->innertext.‘<br />’);
echo utf8_encode($movie->find(‘.info’,0)->innertext.‘<br />’);
echo ‘<span style=”text-decoration: underline;”>Seanslar:</span> ‘.$movie->find(‘.times’,0)->innertext.‘<br />’;
}
echo “<br /><br />”;
}
$html->clear();
|
Kodlarda eskisehir yazan kısma Türkçe harfleri kullanmadan verilerini çekmek istediğiniz şehir ismini yazmanız yeterli. Ben sadece çekilen verileri ekrana yazdırdım. Siz isterseniz verileri veritabanınıza yazdırarak oradan gösterimini sağlayabilirsiniz. Çok ziyaretçi alan bir sayfada gösterecekseniz belirli saatlerde çekip veritabanından göstermenizi tavsiye ederim.
Son olarak sistemin çalışan halini görmek için buradaki sayfayı ziyaret etmeniz yeterli.