PHP ile Uzak bir sunucudan veri çekmek için bugüne dek uzun uzun kod satırları kullanıyorduk. Sımple HTML DOM parser artık alıştığımız uzaktan veri çekme , uzaktan bilgi çekme olayları çok basitleştirdi. HTML kodlarını ayırarak düzenli bir şekilde elde edebiliyoruz. Simple HTML DOM Parser açık kaynak kodlu bir eklentidir. Uzun kodların önüne geçmek için kullanıcıları rahatlatmak adına geliştirilmiş bir eklentidir. Bizlerde bu eklentiden faydalanarak az kod ile çok iş yapma mantığıyla devam edeceğiz. açık kaynak kodlu olduğu için rahat şekilde güvene bilirsiniz her hangi bir güvenlik sorunu yoktur.
Simple HTML DOM Parser anlatımına başlayalım..
Gereksinim
- php.ini dosyasında ki allow_url_fopen parametresini on veya true yapmalıyız.
- PHP5 ve üstü sürüm
Kurulum
önce eklentiyi buradan indirin https://sourceforge.net/projects/simplehtmldom/?source=typ_redirect daha sonra indirdiğimiz dosyanın içindeki simple_html_dom.php isimli dosyayı projemizin içine kopyalayalım. kurulum bu kadar basit :)
Seçici Arama
ilk olarak seçici aramadan başlamak istedim çünkü temel kodları bu kısımdan daha rahat bir şekilde öğrenebileceğimizi düşünüyorum. önce ilk örnek kod satırlarımızı görelim daha sonra detaylı bir biçimde anlatacağım.
<?php
include 'simple_html_dom.php';
$html = new simple_html_dom();
$html->load('<b>Utopian</b> bir <b> Steemit </b> projesidir.');
$code = $html-> find('b');
foreach($code as $htmlcode) { echo $htmlcode. '<br>'; }
?>
#çıktı
Utopian
Steemit
çıktı doğruysa sıkıntı yok
evet yukarida kodlar az çok tanıdık geliyor ama yinede anlatacağım. ilk satırda simple_html_dom.php dosyasını include koduyla içeri aktarıyoruz. ikinci satırda ise simple_html_dom(); fonksiyonunu yeni bir $html değişkenine aktarıyoruz. daha sonra ise $html değişkenine 'Utopian bir Steemit projesidir.' ifadesini atıyoruz. 5. satırda $html değişkenin içindeki find methodu ile işlem yapmak istediğimiz HTML ifadesini methodun içine yazıyoruz. son satırda ise foreach ile $code değişkenindeki methodu $htmlcode değişkenine atayıp bir döngü kuruyoruz ve $htmlcode değişkenini yazdırıyoruz. şöyle bir avantajımızda var kaynağın kaçıncı sırada olduğunu biliyorsak veya kaçıncı sıradaki indeksi çağırmak istiyorsak 4. satırdaki kodlarla değiştire bilirsiniz
$code = $html-> find('b',1);
evet çok bir şey yapmadık sadece ','(virgül) den sonra sırayı ekledik ve aldığımız çıktı Steemit olacaktır .
Sınıfları (Class) ve kimlikleri (id) Seçme
Evet şimdi Css kodlama yapısındaki Class ve idlere geldik :) en çok olarak bunlar kullanıyor zaten. bir sunucudaki veriyi classlarından veya idlerinden çekmek çok daha basit oluyor. önce bi kodları inceleyelim daha sonra detaylı anlatımda bulunacağım.
<?php
include 'simple_html_dom.php';
$html = new simple_html_dom();
$html->load('<div id="select">Utopian</div><div>ve</div><div id="select"> Steemit </div><div>Geleceğe yön verir</div>.');
$code = $html-> find('div#select');
foreach($code as $htmlcode) { echo $htmlcode. '<br>'; }
?>
#çıktı
Utopian
Steemit
yukarıdaki kodlarda gördüğünüz gibi hemen hemen her şey sabit ekstra bir şey yokilk 3 satır sabit sayılır. Sadece içine aktardığımız ifade farklı çünkü burada div i kullandık ve id yi seçeneğini ile bir yazı yazdım oraya dikkat ettiyseniz utopian ve steemit yazısının idleri var. bir sonra ki satırdaki koda daha önce ki örnekte direk o methodu yazıyorduk ama bunda sonuna burası önemli not olarak algılayın :) ** ID ise # işareti CLASS ise .(nokta) işaretini kullanıyoruz** ve o id veya classın adını ekliyoruz.
Uzak sunucudan veri çekme
uzaktan çekmek istediğimiz veriler için tamemen aynı mantıkla yapıyoruz. ama siteyi çağırma kodu farklı bir yapıda örnek olarak. aşağıda kodları inceleye bilirsiniz. bu yöntem ile artık eski uzun ve karışık veri çekme işlemleri yapmanıza gerek kalmayacak artık veri çekme çok basit :) umarım anlata bilmişimdir.
include 'simple_html_dom.php';
$html = new simple_html_dom('https://www.steemit.com');
sadece bu ondan sonra istediğiniz parametre ve methodları çekerek sitenize ekleye bilirsiniz.
bu steemit ve utopian ailesindeki ilk yazım ilerleyen zamanlarda daha verimli ve daha alımlı içerikler paylaşmak isterim. Teşekkür ederim.
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @webcode I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit