wmaraci reklam

ilk üç taneyi almak

7 Mesajlar 1.073 Okunma
smmexpress

FilmlerBizden FilmlerBizden Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 14.03.2013
  • Yaş/Cinsiyet 42 / E
  • Meslek SERBEST MESLEK
  • Konum İstanbul Anadolu
  • Ad Soyad ** **
  • Mesajlar 523
  • Beğeniler 263 / 82
  • Ticaret 2, (%100)



konu1, konu2, konu3,konu4,konu5



şeklinde bir yapıdan sadece ilk 3 konuyu almak istiyorum arkadaşlar.
konu sayısı değişiyor ancak ben ilk 3 taneyi almak istiyorum sadece.
yani sadece konu1,konu2,konu3 kısımlarını almam gerekiyor.

bilgisi olan arkadaşlar yardım edebilir mi?
 

 

wmaraci
reklam

alabacaknet alabacaknet Developer Kullanıcı
  • Üyelik 14.09.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım geliştirme
  • Konum Ankara
  • Ad Soyad M** A**
  • Mesajlar 217
  • Beğeniler 55 / 48
  • Ticaret 0, (%0)
Vallahi PHPde class olarak yazılan basit HTML-DOM sınıfı var, onu tavsiye edicem çünkü explode ile çok zaman kaybedersin + karışık olur

PHP 5+ üzeri gerektiyor, istersen "explode" fonksiyonuyla da açıklayabilirim tabi
Buradan -> http://simplehtmldom.sourceforge.net/



$html = str_get_html('



konu1, konu2, konu3,konu4,konu5

');

# ilk "p.konu" konu sınıflı p etiketini alıyorum
$p_class_konu = $html->find("p.konu", 0);
# linkleri buluyorum_sirasiyla =
$a_laribul_A1 = $p_class_konu->find("a", 0);
$a_laribul_A2 = $p_class_konu->find("a", 1);
$a_laribul_A3 = $p_class_konu->find("a", 2);

# ilk link = $a_laribul_A1, ikincisi = $a_laribul_A2, üçüncüsü = $a_laribul_A3


Sorun oluşursa burdayım, sınıf üzerinde fazla hakimiyetim yok o yüzden unuttuğum kısımlar olabilir
 

 

Murat Alabacak <http://muratalabacak.net>

FilmlerBizden FilmlerBizden Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 14.03.2013
  • Yaş/Cinsiyet 42 / E
  • Meslek SERBEST MESLEK
  • Konum İstanbul Anadolu
  • Ad Soyad ** **
  • Mesajlar 523
  • Beğeniler 263 / 82
  • Ticaret 2, (%100)

alabacaknet adlı üyeden alıntı

Vallahi PHPde class olarak yazılan basit HTML-DOM sınıfı var, onu tavsiye edicem çünkü explode ile çok zaman kaybedersin + karışık olur

PHP 5+ üzeri gerektiyor, istersen "explode" fonksiyonuyla da açıklayabilirim tabi
Buradan -> http://simplehtmldom.sourceforge.net/



$html = str_get_html('



konu1, konu2, konu3,konu4,konu5

');

# ilk "p.konu" konu sınıflı p etiketini alıyorum
$p_class_konu = $html->find("p.konu", 0);
# linkleri buluyorum_sirasiyla =
$a_laribul_A1 = $p_class_konu->find("a", 0);
$a_laribul_A2 = $p_class_konu->find("a", 1);
$a_laribul_A3 = $p_class_konu->find("a", 2);

# ilk link = $a_laribul_A1, ikincisi = $a_laribul_A2, üçüncüsü = $a_laribul_A3


Sorun oluşursa burdayım, sınıf üzerinde fazla hakimiyetim yok o yüzden unuttuğum kısımlar olabilir


teşekkür ederim. php 5 ile nasıl oluyor?
birde bunu regex ile nasıl kullanabiliriz? yani esen ile.
örneğin aldığımız yer $alinankonu[1] ,$alinankonu[2] , $alinankonu[3] ise ?
 

 

alabacaknet alabacaknet Developer Kullanıcı
  • Üyelik 14.09.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım geliştirme
  • Konum Ankara
  • Ad Soyad M** A**
  • Mesajlar 217
  • Beğeniler 55 / 48
  • Ticaret 0, (%0)
RegEx'e hakim değilim, ama sanırım yukarıdaki gibi düz linkleri regex ile almaya kalkarsan direk sayfa üzerinde kullandığında tüm linkleri sana getirecektir ama şöyle yaparsan eğer



$ornek_kod = '



konu1, konu2, konu3,konu4,konu5

';

// preg_match_all dediğimde 2. parametreye direk olarak sadece konu linklerinin bulunduğu kod parçasını yazıyorum!!!!
preg_match_all("/(.*?)<\/a>/i", $ornek_kod, $cikti);

# sonucu ekrana yazdırın bakın, $cikti[0] "arrayını" istiyormuşsunuz gibi hissettim ama çıktıyı tahmin edemiyorum
echo "
"; print_r($cikti); echo "
";
FilmlerBizden

kişi bu mesajı beğendi.

Murat Alabacak <http://muratalabacak.net>
wmaraci
wmaraci

FilmlerBizden FilmlerBizden Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 14.03.2013
  • Yaş/Cinsiyet 42 / E
  • Meslek SERBEST MESLEK
  • Konum İstanbul Anadolu
  • Ad Soyad ** **
  • Mesajlar 523
  • Beğeniler 263 / 82
  • Ticaret 2, (%100)

alabacaknet adlı üyeden alıntı

RegEx'e hakim değilim, ama sanırım yukarıdaki gibi düz linkleri regex ile almaya kalkarsan direk sayfa üzerinde kullandığında tüm linkleri sana getirecektir ama şöyle yaparsan eğer



$ornek_kod = '



konu1, konu2, konu3,konu4,konu5

';

// preg_match_all dediğimde 2. parametreye direk olarak sadece konu linklerinin bulunduğu kod parçasını yazıyorum!!!!
preg_match_all("/(.*?)<\/a>/i", $ornek_kod, $cikti);

# sonucu ekrana yazdırın bakın, $cikti[0] "arrayını" istiyormuşsunuz gibi hissettim ama çıktıyı tahmin edemiyorum
echo "
"; print_r($cikti); echo "
";


teşekkür ederim tekrar. $cikti[1] aslında istediğim. yani konu başlıklarını linksiz olarak almak.

Ek Olarak:

alabacaknet adlı üyeden alıntı

RegEx'e hakim değilim, ama sanırım yukarıdaki gibi düz linkleri regex ile almaya kalkarsan direk sayfa üzerinde kullandığında tüm linkleri sana getirecektir ama şöyle yaparsan eğer



$ornek_kod = '



konu1, konu2, konu3,konu4,konu5

';

// preg_match_all dediğimde 2. parametreye direk olarak sadece konu linklerinin bulunduğu kod parçasını yazıyorum!!!!
preg_match_all("/(.*?)<\/a>/i", $ornek_kod, $cikti);

# sonucu ekrana yazdırın bakın, $cikti[0] "arrayını" istiyormuşsunuz gibi hissettim ama çıktıyı tahmin edemiyorum
echo "
"; print_r($cikti); echo "
";


denedim ancak olmadı.

preg_match_all('/


başlık 1
,
başlık 2
,
başlık 3
,
başlık 4

alabacaknet

kişi bu mesajı beğendi.

alabacaknet alabacaknet Developer Kullanıcı
  • Üyelik 14.09.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım geliştirme
  • Konum Ankara
  • Ad Soyad M** A**
  • Mesajlar 217
  • Beğeniler 55 / 48
  • Ticaret 0, (%0)
Kodum bende çalıştı, 2. bahsettiğinize bakıyorum şimdi... $cikti[2][0] == Konu1 başlığına eşit, $cikti[2][1] == Konu2 ...

İlk verdiğim kodun çalışır sayfası: http://alabacaknet.koding.com/tests/codew1.php


İkinci bahsettiğinize baktım, onun adresi de şu sayfa http://alabacaknet.koding.com/tests/codew2.php

"

.....



1 kez


4 kez (ki istediğiniz kısım bu)
başlık 1

sizin istediğiniz kısımlar tekrarlı biçimde alındığında her tekrarda kalın belirttiğim kısımlar BİLİNMEYECEK(DEĞİŞKEN) şekilde işaretlenmeli
BAŞLIK

Ek Olarak:

FilmlerBizden adlı üyeden alıntı

teşekkür ederim tekrar. $cikti[1] aslında istediğim. yani konu başlıklarını linksiz olarak almak.

Ek Olarak:

denedim ancak olmadı.

preg_match_all('/


başlık 1
,
başlık 2
,
başlık 3
,
başlık 4



* Bildirim gelmesi için alıntı yapıyorum
FilmlerBizden

kişi bu mesajı beğendi.

Murat Alabacak <http://muratalabacak.net>

FilmlerBizden FilmlerBizden Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 14.03.2013
  • Yaş/Cinsiyet 42 / E
  • Meslek SERBEST MESLEK
  • Konum İstanbul Anadolu
  • Ad Soyad ** **
  • Mesajlar 523
  • Beğeniler 263 / 82
  • Ticaret 2, (%100)
Evet üstadım oldu çok teşekkür ederim.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al