Simple HTML DOM Parser Veri Alışverişi / Turkish Tutorial

in utopian-io •  7 years ago  (edited)

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @webcode I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

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