• 18-01-2014, 01:33:58
    #1
    "PHP de Herhangi bir xml verisini bölümleyip kullanmak için Kullanılan en önemli Yöntem DOM nesnesi olmaktadır. Bu Nesne bir XML veya HTML metnin veya dosyanın bölümlenip kullanılmasını sağlar
    Sitelerinzde Basitçe kullnabileceğiniz bir örneği vermek istiyorum Herhangi bir web sitesinin içerisinde bir linkin var olup olmadığını kontrol etmek isterseniz sayfa içesisindeki a tagını kontrol etmeniz yeterli olcaktır a tagı temelde 2 bölümden oluşur a bildirimi ve href parametresi
    Öncelikle nesnenin yaratılmasına bakalım;

    $sayfa=file_get_contents("http://www.seowarp.net");
    $dom=new DOMdocument(); 
    $dom->loadHTML($sayfa);
    Bu Kodlama ile sayfa içeriği dom nesnesine yüklenir. Artık yapmanız gereken şey a taglarını ayrıştırmak ve kullanılabilir kılmaktır bunun için ;

    $ahrefs=$dom->getElementsByTagName("a");
    olacaktır artık a taglarının içeriğini alıp kontrol edebiliriz
    $found=false;
    $foundurl="";
    for($i=0;$ilength;$i++){
    $href=$ahrefs->item($i)->attributes->getNamedItem("href")->nodeValue;
    $urldomain=urltodomainname($href);
    if($domain==$urldomain){$found=true;
    $foundurl=$href;
    $keyword=$ahrefs->item($i)->nodeValue;
    if(trim($keyword)=="")$keyword="Anahtar Kelimesiz!";
    }
    }
    ve son olarak bulunup bulunmadığının kontrolü
    if($found){
    if($ahrefs->lengthlength.'';
    else echo 'SPAM';
    }"
    http://www.seowarp.net/forum/63-WEB%...ml?accept=true
  • 18-01-2014, 02:38:46
    #2
    anlatımınızın xml veri çekmekle olan ilgisini anlayamadım ama olaki php ile xml den veri çekmek isteyipte bu konuyu bulanlar için yazıyorum.

    simplexml_load_file ve simplexml_load_string fonksiyonlarını kullanarak xml'i bir obje halinde alıp kolaylıkla işlem yapabilirler.
  • 19-01-2014, 00:41:19
    #3
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    anlatımınızın xml veri çekmekle olan ilgisini anlayamadım ama olaki php ile xml den veri çekmek isteyipte bu konuyu bulanlar için yazıyorum.

    simplexml_load_file ve simplexml_load_string fonksiyonlarını kullanarak xml'i bir obje halinde alıp kolaylıkla işlem yapabilirler.
    Valla Ne ilgisi var bilmiyorum demekki bu kod yanlış eğer yanlışsa nasıl çalışıyor, yok yanlış çalışıyorsa ben nasıl alexa verilerini alıyorum veya html de bir tür xml verisi değilmi ilginç sorular olsa gerek
  • 19-01-2014, 00:44:04
    #4
    MeSuTbilgili adlı üyeden alıntı: mesajı görüntüle
    Valla Ne ilgisi var bilmiyorum demekki bu kod yanlış eğer yanlışsa nasıl çalışıyor, yok yanlış çalışıyorsa ben nasıl alexa verilerini alıyorum veya html de bir tür xml verisi değilmi ilginç sorular olsa gerek
    Burada verdiğiniz kod A taglarını işliyor. XML ile hiçbir ilgisi yok.
  • 19-01-2014, 01:24:13
    #5
    sewakldawk adlı üyeden alıntı: mesajı görüntüle
    Burada verdiğiniz kod A taglarını işliyor. XML ile hiçbir ilgisi yok.
    HTML XML
    Burada Markup language Yani ML tanımı var yani html de aslında bir tür XML bilgisidir yani
    <item>
    </item>
    ile
    <a>
    </a>
    arasında temelde bir farklılık yok

    HTML, XML verisinin Özelliştirilmiş hali olmakla birlikte XMl veriden de hiç bir farkı olmayan işaretleme dilidir.
    a olan örnek benim kullndığım ve tekrar kod yazmak istemediğim için oraya koyduğum bir xml tagıdır.
    umarım bu yazının faydası olur

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 01:24:13 -->-> Daha önceki mesaj 00:53:40 --

    Bak Buda Başka bir forumda yazdığım örnek sırf daha kolay anlaşılsın diye uzun uzun yazdım
    Alıntı
    $rss=file_get_contents("http://www.sirketprofilleri.com/feed/");
    $dom=new DOMDocument();
    $dom->loadHTML($rss);
    $items=$dom->getElementsByTagName("item");
    $itemsayisi=$items->length;
    $itemarray=array();
    for ($i=0;$i<$itemsayisi;$i++){

    $itemlist=$items->item($i)->childNodes;
    for($j=0;$j<$itemlist->length;$j++){
    echo $itemlist->item($j)->nodeName." : ".$itemlist->item($j)->nodeValue."
    ";
    switch ($itemlist->item($j)->localName){
    case "title":
    $itemarray[$i]["title"]=$itemlist->item($j)->nodeValue;
    break;
    case "link":
    $itemarray[$i]["link"]=$itemlist->item($j)->textContent;
    break;
    case "pubDate":
    $itemarray[$i]["pubDate"]=$itemlist->item($j)->nodeValue;
    break;
    case "category":
    $itemarray[$i]["category"][count($itemarray[$i]["category"])]=$itemlist->item($j)->nodeValue;
    break;
    case "guid":
    $itemarray[$i]["guid"]=$itemlist->item($j)->nodeValue;
    break;
    case "description":
    $itemarray[$i]["description"]=$itemlist->item($j)->textContent;
    break;
    case "content":
    $itemarray[$i]["content"]=$itemlist->item($j)->textContent;
    break;
    }
    }
    }
    print_r($itemarray);
    $htmldata="";
    foreach ($itemarray as $item){
    $htmldata.='<span style="margin:3px;"><a href="'.$item["guid"].'" target="_blank">'.$item["title"].'</a></span>';
    }
    echo '<div style="height: 25px;position: absolute;top: 0px;left: 0px;width: 100%;overflow: hidden;color: #FFFFFF; background-color: #666666;">'.$htmldata.'</div>';
    test için adres http://www.seowarp.net/test.html Kodlar Çalışıyor uydurma değildir.
  • 19-01-2014, 01:35:40
    #6
    MeSuTbilgili adlı üyeden alıntı: mesajı görüntüle
    HTML XML
    Burada Markup language Yani ML tanımı var yani html de aslında bir tür XML bilgisidir yani
    <item>
    </item>
    ile
    <a>
    </a>
    arasında temelde bir farklılık yok

    HTML, XML verisinin Özelliştirilmiş hali olmakla birlikte XMl veriden de hiç bir farkı olmayan işaretleme dilidir.
    a olan örnek benim kullndığım ve tekrar kod yazmak istemediğim için oraya koyduğum bir xml tagıdır.
    umarım bu yazının faydası olur

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 01:24:13 -->-> Daha önceki mesaj 00:53:40 --

    Bak Buda Başka bir forumda yazdığım örnek sırf daha kolay anlaşılsın diye uzun uzun yazdım

    test için adres http://www.seowarp.net/test.html Kodlar Çalışıyor uydurma değildir.
    Tamam da güzel kardeşim, anlatımını yaptığın şeyi arayan, buna ihtiyacı olan adam bunu anlayabilecek adam mıdır sence?
  • 19-01-2014, 02:16:18
    #7
    sewakldawk adlı üyeden alıntı: mesajı görüntüle
    Tamam da güzel kardeşim, anlatımını yaptığın şeyi arayan, buna ihtiyacı olan adam bunu anlayabilecek adam mıdır sence?
    Soranlar Var öyle olmasa yazmazdım ! zaten ikinci verdiğim örnek bunun üzerine hazırlandı !
  • 20-01-2014, 22:34:04
    #8
    Sizin bir bilgiyi paylaşmanıza birşey demedim güzelde birşey yapıyorsunuz bilgi paylaşarak ama tepkinize anlam veremedim. evet xml de htmlde birer markup language olabilir özünde ikiside textden oluşuyor ama web'inde standartları var. html ve xml aynı şey değildir ikisinin farklı standartları vardır. Sizin yönteminiz dom yöntemi ile html'i parse etmektir. Xml'i ise parse etmenin çok daha hızlı ve kolay çözümü var konuyu okuyan arkadaşlar için onu paylaştım o kadar. Tepki vermenize gerek yoktu.
  • 21-01-2014, 09:05:19
    #9
    mevzu xml ise en mantıklı çözüm @yasarkemaldag'ın söylediği gibi simplexml_load_file ve simplexml_load_string'dir. tartışmaya gerek yok.

    php de "bu çalışıyorsa doğrusu budur" mantığı güdülmez. çünkü php'nin en güzel yanlarından birisi "genelde" bir çözümü 3-4 farklı yöntemle halledebilmektir ama profesyonellik bu yöntemlerin en doğru, en stabil ve en hızlı olanını kullanabilmektir.