Şimdi Ara

PHp ile başka birsayfanın HTML kodlarını almak istiyorum

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
2.984
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba arkadaşlar.

    Php ile ilgileniyorum ve şu anda uğraştığım şey için php'ye şunu yaptırmak istiyorum.

    Kod başlangıcında benim verdiğim sayfa açılacak örneğinhttp://forum.donanimhaber.com/default.asp
    daha sonra bu sayfanın 270. satırını bir değişkene almak istiyorum.

    Şu anda dediğim satırda şu kod bulunmakta

     
    <a data-test="test" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="http://www.donanimhaber.com/" data-href="http://www.donanimhaber.com/"><acronym title="DonanımHaber...">Ana Sayfa</acronym></a> |


    bu satırı bir değişkene aldıktan sonra bu değişkenin içindeki verinin 85. karakterinden itibaren 9 karakteri ise başka bir değişkene alacağım.
    böylece Elimde " Ana Sayfa " yazısı bulunmuş olacak.
    bu kısmı SubString() fonksiyonu ile yapabilirm, ancak ilk anlattığım şeyi yapabilmem mümkün mü?







  • $html = file_get_contents('http://forum.donanimhaber.com/default.asp');

    ile sayfa içeriğini alırsın sonra ister satır numarasıyla, ister str_replace ile, ister preg_replace ile değişiklik yaparsın....

    Ek: tabi file_get_contents`in çalışması için "php.ini"`de allow_url_fopen`un açık olması gerek...



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 27 Kasım 2006; 12:35:59 >
  • quote:

    Orjinalden alıntı: cezve

    $html = file_get_contents('http://forum.donanimhaber.com/default.asp');

    ile sayfa içeriğini alırsın sonra ister satır numarasıyla, ister str_replace ile, ister preg_replace ile değişiklik yaparsın....

    Ek: tabi file_get_contents`in çalışması için "php.ini"`de allow_url_fopen`un açık olması gerek...


    teşekkür ederim,

    file_get_contents() fonksiyonu ile istediğim dosyayı almayı başardım fakat istediğim satır numarasını nasıl kullanacağım onu yapamadım.
    www.php.net adresinden fonkksiyonu inceledim fakat oradada satır numarasından bahsetmemiş.

    biliyorsanız beni çok sevindirirsiniz, tekrar teşekkürler.




  • Satır numarasıyla hantal olur. preg_match bu durum için daha uygun gibi. Yapacağın şeyi daha detaylı yazarsan daha uygun çözümü yazabiliriz.
  • Aslında tam olarak ilk iletide anlattığım şeyi yapacağım. yani bir sitenin bir sayfasında kullanıcılar listeleniyor.
    bu listelenen kullanıcıların kisisel profillerine ulaşmak için şöyle bir HTML kodu oluşturuluyor.

    "<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=10692485&url=http://www.xxxxx.com/kullanici.php?id=2384" data-href="http://www.xxxxx.com/kullanici.php?id=2384">kullanıcı adı</a>

    sayfadaki bunun gibi bir satırda kalın olarak yazdığım yerleri kopyalayıp veri tabanına yazdıracağım.

    bu sayfada, bunun gibi kodlar 6şar satır sabit aralıkla listeleniyorlar. o yüzden satır numarası olsun demiştim.


    ayrıca ben preg_match 'i de bilmiyorum, PHP 'yi yeni öğreniyorum ve sırf birşeyler öğrenmek için bu gibi işlerlerle ilgileniyorum desem doğru olur.
    yarın öbürgün mutlaka lazım olacaktır.




  • preg_match_all bu iş için çok uygun

     
    $html = file_get_contents('http://forum.donanimhaber.com/default.asp');


    preg_match_all("/\<a href\=\"http\:\/\/www\.xxxxx\.com\/kullanici\.php\?id\=([0-9]+)\">([^\<]+)\<\/a\>/i", $html, $cikti, PREG_SET_ORDER);




    burada preg_match_all $html içindeki "<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=10694122&url=http://www.xxxxx.com/kullanici.php?id=2384" data-href="http://www.xxxxx.com/kullanici.php?id=2384">kullanıcı adı</a>"`na benzer linkleri regular expression`la çeker. Sonuçta elinde

    $çikti adıyla tüm kullunıcı adı ve idlireni barındıran bir dizi olur. print_r($cikti) dersen diziyi görebilirsin örnek;

     
    Array
    (
    [0] => Array
    (
    [0] => <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=10694122&url=http://www.xxxxx.com/kullanici.php?id=2384" data-href="http://www.xxxxx.com/kullanici.php?id=2384">kullanıcı adı</a>
    [1] => 2384
    [2] => kullanıcı adı
    )
    [1] => Array
    (
    [0] => <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=10694122&url=http://www.xxxxx.com/kullanici.php?id=4201" data-href="http://www.xxxxx.com/kullanici.php?id=4201">cezve</a>
    [1] => 4201
    [2] => cezve
    )
    .
    .
    .

    )




    şimdi eğer bunu veritabanına kayıt etmek istiyorsan

    for($i=0;$i<count($cikti);$i++){

    .....INSERT INTO kullunicilar (id,kulluniciadi) values('$cikti[$i][1]','$cikti[$i][2]')
    }


    gibi bir döngüyle tüm listeyi kayıt edersin




  • hocam süpermiş bu be
    eskiden de böyleydin hiç değişmiyorsun yine aynısın
  • Kardeş sen html kaynak kodunu böyle almayı dene


    $href=file($site);
    echo"<textarea>";
    for($i=0;$i<count($href);$i++){echo htmlspecialchars($href[$i]);}
    echo"</textarea>";



    < Bu mesaj bu kişi tarafından değiştirildi looter -- 6 Aralık 2006; 1:07:25 >
  • $al = count($cikti);

    for($i=0;$i<$al;$i++){

    .....INSERT INTO kullunicilar (id,kulluniciadi) values('$cikti[$i][1]','$cikti[$i][2]')
    }

    bu şekilde değiştirirsen kod daha hızlı çalışacaktır her seferinde $cikti değişkenini saydırmaya gerek yok.

    iyi çalışmalar.
  • quote:

    Orjinalden alıntı: looter

    Kardeş sen html kaynak kodunu böyle almayı dene


    $href=file($site);
    echo"<textarea>";
    for($i=0;$i<count($href);$i++){echo htmlspecialchars($href[$i]);}
    echo"</textarea>";




    Kardeş şimdi bunu bilen ben kaynak kodunun saklanabiliceğini söylüyorsam bişey biliyorum demek ki, ne dersin?




  • hocam bende de bi program var ama kaynak kodu gizlemiyor
    sadece zorlaştırıyor
    mesela tum degiskenleri sırayla $_1 , $_2 ... diye değişiyor ve kullanıldıkları yerlerde de degistiriyor
    yani anlamsızlastırıyor

    senni bahsettiğin bu mu yoksa baska bi şey mi
    cunku dosya ne olursa olsun flashget vs gibi bi programla cekebilir (biraz urasir ama (kafaya takarsa :) başarabilir )
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.