Bu Blogda Ara

12 Temmuz 2010 Pazartesi

Php ve Xml deki Yenilikler

amaçlanan İzleyici

Bu makalede PHP geliştiriciler için PHP 5 yeni XML işlevini kullanarak ilgilenen her düzeyde tasarlanmıştır. XML hakkında sadece genel temel bilgi varsayılır. Ancak, bir avantaj zaten XML ile PHP çalıştı varsa's.
Giriş

bugünün internet dünyasında, XML sadece bir terim artık değil, yaygın olarak kabul gören ve standart kullanılır. Bu nedenle XML desteği daha ciddi PHP 5 için daha PHP 4 yılında alınmıştır. PHP 4, size hemen her zaman standart dışı, API kırma, hafıza, eksik işlevselliği sızıntı ile karşı karşıya kalmıştı. bazı eksikliklerin ile PHP 4 ve 4,3 serisi ele olmasına rağmen, geliştiriciler yine de hemen hemen her şey ve PHP 5 sıfırdan başlamak dökümü karar verdi.

Bu makalede PHP 5 tüm yeni özelliklerini bir giriş verecektir XML ilgili sunuyor.
XML PHP 4

PHP Kurulduğu günden bu yana XML desteği olmuştur. bu iken, "sadece" bir SAX tabanlı arayüz, en azından çok fazla uğraşmadan bir XML belgeleri ayrıştırma izin yaptı. Daha fazla XML desteği PHP 4 ile domxml uzatma geldi. olarak backend Sablotron ile daha sonra XSLT uzantısı, eklendi. PHP 4 yaşam döngüsü boyunca, HTML gibi ek özellikler, XSLT ve DTD doğrulama domxml uzatma eklendi. xslt ve domxml uzantıları gerçekten deneysel aşamada sol asla başlangıç ve birden onların API daha değişti Ne yazık ki, bunlar varsayılan olarak etkin değildir ve sık sık ev sahipliği yüklü değil. Ayrıca, domxml uzatma, DOM standart W3C tarafından tanımlanan uygulamak değil ama kendi yöntemi adlandırma vardı. Bu PHP 4,3 serisinde birlikte daha fazla belleğe sızıntısı ve diğer düzeltmeler ile geliştirilmiş iken, gerçekten kararlı bir aşamaya ulaştı asla ve neredeyse gerçekten derin sorunları düzeltmek mümkün değildi. Ayrıca, sadece SAX uzantısı varsayılan olarak, bu nedenle diğer uzantıları yaygın dağıtım elde hiçbir zaman etkin oldu.

Tüm bu nedenlerden dolayı, PHP XML geliştiriciler PHP 5 için sıfırdan başlatmak ve karar sık kullanılan standartları takip etmek.
XML PHP 5'te

Hemen hemen herşeyi XML desteği konusunda PHP 5 için yeniden yazıldı. Tüm XML uzantılarını artık GNOME projesi ile mükemmel libxml2 kütüphane dayanmaktadır. Bu farklı uzantıları arasında birlikte çalışabilirlik için, izin verir böylece çekirdek geliştiriciler sadece bir temel kütüphanesi ile çalışmanız gereken bu. Örneğin, oldukça karmaşık ve büyük ölçüde gelişmiş bellek yönetimi sadece bir kez tüm XML ile ilgili uzantıları için uygulanması gerekiyordu.

iyi bilinen SAX destek PHP 4 miras ek olarak, PHP 5 W3C standart ve XSLT için çok hızlı libxslt motoruyla göre DOM destekler. Ayrıca yeni PHP özgü SimpleXML uzatma ve çok gelişmiş, standartlarla uyumlu SOAP uzantısı içerir. XML artan önemi göz önüne alındığında, PHP geliştiriciler gıyaben daha XML desteği sağlamak için karar verdi. Bu, şimdi SAX, DOM ve SimpleXML dışarı onların gelecekte çok daha fazla sunucu üzerinde kurulacak sağlar kutusuna etkinse almak anlamına gelir. XSLT ve SOAP desteği, ancak yine de açıkça bir PHP inşa halinde olacak şekilde ayarlanmalı.
Akımlara destek

Tüm XML uzantılarını şimdi PHP boyunca akarsu bile PHP bir akarsu doğrudan erişmeye çalıştığınızda destekliyoruz. PHP 5, size, örneğin, bir veya yönerge gelen bir PHP akarsu erişebilirsiniz. Temel olarak, bir PHP akışı her yerde normal bir dosyaya erişebilir erişebilirsiniz.

genel olarak Streams PHP 4.3 ve uygulamaya konmuştur fazla PHP 5 de genelleme dosya erişimi bir yolu olarak, ağ erişim ve diğer işlemler paylaşan fonksiyonları ortak bir set düzeldi. Hatta kendi uygulayabilirsiniz PHP kodu, ve akarsu böylece birleştirmek ve verilere erişimi kolaylaştırır. Bu konuda daha fazla bilgi için PHP belgelerine bakın.
SAX

SAX API Simple için XML kısaltmasıdır. Bu XML belgeleri ayrıştırma için bir geri arama tabanlı arayüzü's. SAX desteği PHP 3 beri olmuş ve o günden bu yana çok değişmemiştir. Eski kod hala çalışması gerektiğini böylece PHP 5 için API değişmeden vardır. Tek fark o expat kitaplıkta artık dayalı değil, ama libxml2 kitaplıkta.

Bu değişiklik şu anda çözümlenir namespace desteği, bazı problemler ortaya libxml2 eski sürümlerini libxml2 2,6, ama değil. Eğer () xml_parser_create_ns kullanıyorsanız nedenle, size kesinlikle yüklemeniz önerilir sistem libxml2 2.6 veya yukarıda.
DOM

DOM (Document Object Model), W3C tarafından tanımlanan XML belge ağaçlar erişim için bir standarttır. PHP 4, domxml uzantısı olarak sadece bu iş için kullanıldı. domxml uzantılı ana sorunu, standart yöntem adları takip yoktu. Ayrıca uzun bir süre (bunlar PHP 4.3 'de tespit edildi) sızıntısı sorunları belleği vardı.

Yeni DOM uzantısı tamamen W3C standardı, yöntem ve özellik adları dahil dayanır. Eğer DOM ile diğer dillerden aşina iseniz, JavaScript örneğin, sizin PHP benzer işlevler kod için çok daha kolay olacaktır. yöntem ve parametreleri aynıdır çünkü belgeleri her zaman kontrol etmek, yok.

Bu yeni W3C uyumluluk sonucu, eski domxml tabanlı betikleri gibi artık çalışmaz. API oldukça PHP 5 farklı. Ama eğer "neredeyse W3C uyumlu" yöntemi isimleri PHP 4,3 mevcuttur taşımak kullanılmış gibi büyük bir olay değil. Sadece yükleme ve tasarruf yöntemleri değiştirmek gerekiyor ve yöntem adları (studlyCaps kullanır DOM standardında altçizgi kaldırın). Diğer ayarlamaları orada burada gerekli olabilir, ama ana mantık aynı kalabilirsin.
DOM Okuma

Ben bu yazıda DOM uzatma tüm özelliklerini açıklamak istemiyorum yani overkill olacaktır. Bu belgeler http://www.w3.org/DOM, temelde PHP 5 uygulanmasına karşılık olarak kullanılabilir imi isteyebilirsiniz.

örnekler bu makalede en aynı XML dosyası zend.com at RSS mevcut bir çok-basitleştirilmiş versiyon için. Hamur ertesi gün bir metin dosyası ve articles.xml olarak kaydedin:




PHP Haftalık: Issue # 172 </ title> <br /> <link> http://www.zend.com/zend/week/week172.php </ link> <br /> </ Item> <br /> <item> <br /> <title> Eğitimi: PHP kaya gibi sağlam kod geliştirin: Yarı üç </ title> <br /> <link> http://www.zend.com/zend/tut/tut-hatwar3.php </ link> <br /> </ Item> <br /></ Makaleler> <br /> <br />Bir DOM nesnesine Bu örnekte yük için, bir DomDocument nesne oluşturmak için, ve sonra XML dosya yükü: <br /> <br />$ Dom = new DomDocument (); <br />$ Dom-> yük ("articles.xml"); <br /> <br />Yukarıda belirtildiği gibi, bir XML belge yüklemek için bir PHP akışı kullanabilirsiniz. Yazdığınız bu yaptığınız <br /> <br />$ Dom-> load ("file: / / / articles.xml"); <br /> <br />(Ya da akarsu başka tür uygun olarak). <br /> <br />Eğer çıkış tarayıcıya XML belge veya standart çıkış kullanmak gibi isterseniz: <br /> <br />print $ dom-> saveXML (); <br /> <br />Bir dosyayı kullanmak için kaydetmek istiyorsanız: <br /> <br />print $ dom-save (> "newfile.xml"); <br /> <br />(Bu eylem stdout'a filesize göndermek unutmayın.) <br /> <br />Bu örnekte çok fazla işlevsellik, elbette, bu yüzden bir şey daha yararlı yapalım: tüm başlıkları kapmak atalım. Farklı yolları Bunu yapmak için, bir olmanın en kolay getElementsByTagname ($ tagname) kullanılır: <br /> <br />$ Başlık = $ dom-> getElementsByTagName ("Başlık"); <br />foreach ($ gibi başlıklar düğüm) ( <br /> print $ düğüm-> textContent. ""; <br />) <br /> <br />Mülkiyet textContent aslında W3C standart değildir. Bu kolaylık mülkiyet hızlı bir elemanın tüm metin düğümleri gibi erişebilirsiniz. W3C yolu olurdu okumak için: <br /> <br />$ Düğüm-> firstChild-> data; <br /> <br />Emin olsaydı (ama sadece firstChild metin olarak size gerekli, aksi takdirde tüm çocuk aracılığıyla döngü olurdu düğüm) olduğunu bulmak için düğümler. <br /> <br />Bir şey daha fark bu getElementsByTagName (), ve benzer işlevi get_elements_by_tagname () PHP 4 olduğu gibi değil, bir dizi bir DomNodeList döndürür. Ama bir foreach yönergesi ile size örnekte gördüğünüz gibi, kolayca loop. Ayrıca, doğrudan $ başlıkları-> madde (0) ile düğümleri erişebilir. Bu Başlığı ilk eleman dönecekti. <br /> <br />tüm başlıkları döngüsüne düğümleri kök elemanı ile başlayan yoluyla olacağını almak için bir başka yaklaşım. Gördüğünüz gibi, bu şekilde daha karmaşık, ama aynı zamanda daha esnek daha adil başlıklı bileşenlere göre gerektiğinde's. <br /> <br />foreach ($ dom-> $ makaleler şeklinde documentElement-> childNodes) ( <br /> / / Düğüm bir eleman (NodeType == 1) ve eğer isim "item" loop daha fazla olduğunu <br /> ($ Makaleler-> NodeType == 1 & & $ makaleler-> nodename == eğer "item") ( <br /> foreach ($ makaleleri $ öğe olarak childNodes>) ( <br /> / / Eğer düğüm bir eleman ve adı "title", bu baskı olduğunu. <br /> ($ Öğe-> NodeType == 1 & & $ öğe-> nodename == "title") (if <br /> print $ öğe-> textContent. ""; <br /> ) <br /> ) <br /> ) <br />) <br />XPath <br /> <br />XPath SQL XML gibi bir şeydir. XPath ile belirli bir düğüm bazı kriterlere uyan bir XML dokümanı sorgulayabilir. XPath tüm başlık düğümleri almak için, sadece aşağıdakileri yapın: <br /> <br /><? <br />$ Xp = new domxpath ($ dom); <br />$ Başlık = $ xp-> sorgu ("/ articles / item / title"); <br />foreach ($ gibi başlıklar düğüm) ( <br /> print $ düğüm-> textContent. ""; <br />) <br />?> <br /> <br />Bu getElementsByTagName () ile hemen hemen aynı kodu, ancak XPath çok daha güçlüdür. biz) yerine bir madde elemanının çocuğu olma makale öğesinin bir çocuk (bir başlık eleman olsaydı Örneğin, getElementsByTagname () geri cekti. / Makaleler / item / başlık sadece istenilen düzeyde yerleştirilir başlık elemanları pick up ile. Bu sadece bir örnek; seçenek daha olabilir: <br /> <br /> * / Makaleler / item [position () = 1] / title ilk öğe element başlığı eleman dönen. <br /> * / Makaleler / item / title [@ = '23 '] bütün başlıklı bileşenlere bir öznitelik değeri 23 ile id sahip dönen id <br /> * / Makaleler / / title makaleler aşağıda yer almaktadır tüm başlık elemanları dönen <br /> <br />Bir çok XML belgeleri sorguya varsa da belirli bir kardeş unsur, veya sahip elemanlar için sorgulayabilir, vs, düzgün çok zaman kazandıracak XPath kullanmayı öğrenme belli bir metin içeriği veya isim kullanılıyor. Çok daha kolay, daha hızlı yürütülmesi kullanmak, ve standart DOM yöntemlere göre daha az kod gerektirir. <br />DOM yazma <br /> <br />Document Object Model sadece okunamaz ve sorgulanabilir; da manipüle edebilir ve yazabilirsiniz. onun yazarları ve her türlü durumu hemen destek çalıştım çünkü (DOM standardı biraz verbose,, ama çok iyi iş yapar). Yeni bir eleman bizim articles.xml eklenir örnekte, bakınız: <br /> <br />$ Öğe = $ dom-> createElement ("item"); <br />$ Title = $ dom-> createElement ("title); <br />$ Titletext = $ dom-> createTextNode ("XML PHP5 içinde"); <br />$ Title-> appendChild ($ titletext); <br />$ Item-> appendChild ($ title); <br />$ Dom-> documentElement-> appendChild ($ madde); <br />print $ dom-> saveXML (); <br /> <br />İlk olarak, gerekli olan tüm düğümleri: Öğe öğe, bir başlık eleman ve bir metin düğümü öğenin başlığını içeren oluşturun. Sonra birlikte başlık elemanına metin düğümü ekleyip öğe elemana başlık eleman ekleyerek tüm düğümleri zinciri. kök eleman makaleleri içine Sonunda eklemek öğe element, ve voila! - Yeni bir yazı bizim XML belgede listeledik. <br />Sınıflar genişletme <br /> <br />Yukarıdaki örnekler tüm PHP 4 ile domxml uzantısı (yalnızca API oldu biraz farklı doable) iken, yeteneği kendi kodu ile DOM sınıfları genişletmek için PHP 5 yeni bir özelliktir. Böylece daha okunabilir kod yazmayı sağlar. İşte bütün örnek bir daha, yeniden DomDocument sınıfı kullanmak için yazılmış: <br /> <br />sınıf Makaleler DomDocument (uzatır <br /> function () (__construct <br /> / / Çağrılacak var! <br /> veli:: __construct (); <br /> ) <br /> <br /> fonksiyonu addArticle ($ title) ( <br /> $ Öğe = $ this-> createElement ("item"); <br /> $ Titlespace = $ this-> createElement ("title"); <br /> $ Titletext = $ this-> createTextNode ($ title); <br /> $ Titlespace-> appendChild ($ titletext); <br /> $ Item-> appendChild ($ titlespace); <br /> $ This-> documentElement-> appendChild ($ madde); <br /> ) <br />) <br />$ Dom = new Makaleler (); <br />$ Dom-> yük ("articles.xml"); <br />$ Dom-> addArticle ("XML PHP5 içinde"); <br />print $ dom-save (> "newfile.xml"); <br />HTML <br /> <br />PHP 4'te bir sıklıkla gözden kaçan özelliği libxml2 içinde HTML desteği. Sadece iyi biçimli XML belgeleri DOM uzantısı ile yük değil, ama aynı zamanda yükleyebilirsiniz-düzgün biçimli olmayan HTML belgeleri düzenli DomDocument nesneleri olarak tedavi ve XPath ve SimpleXML gibi tüm mevcut yöntemleri ve özellikleri. <br /> <br />Bu HTML yeteneği çok eğer kontrolü olmayan bir web sitesinden içeriğe erişmek için gereken yararlıdır. olarak XPath, XSLT veya SimpleXML size kodlama bir çok önlemek yardımıyla, normal ifadeler ya da SAX parser kullanılarak karşılaştırıldı. HTML belgesi de (sık problem yapılandırılmış! değilse bu özellikle kullanışlı oluyor). <br /> <br />Aşağıdaki kodu, php.net dizin sayfasına alınır onu ayrıştırır ve döner Başlığı ilk elemanının adı: <br /> <br />$ Dom = new DomDocument (); <br />$ Dom-> loadHTMLFile ("http://www.php.net/"); <br />$ Title = $ dom-> getElementsByTagName ("title"); <br />print $ title-> madde (0) -> textContent; <br /> <br />sizin çıkış parçası olarak ne zaman beklenen unsurlar bulunmaz hatalar olsun unutmayın. <br /> <br />Eğer, sizin için iyi bir haber de bir o insanlar hala 4 kodu web sayfalarında HTML çkş ediyorsanız. DOM uzantısı sadece HTML belgeleri yükleyemiyor da HTML 4 olarak kaydedebilirsiniz. Adil kullanım $ dom-> saveHTML () kadar sizin DOM belge inşa ettikten sonra. O, sadece HTML kodunu W3C standartları ile uyumlu yapmak için, sen uzakta Tidy uzantısını kullanarak daha iyi olduğunu unutmayın. libxml2 içinde HTML desteği mümkün olan her durumda, ve ayarlanmış değil de nadir biçimde girdi başa gelmez. <br />Onaylama <br /> <br />XML belgelerinin geçerliliği gittikçe daha önemli. Bazı yabancı kaynaktan bir XML belge almak Örneğin, eğer buna işleyebilir önce belirli bir format şu doğrulamak gerekir. Kullanabileceğiniz çünkü şans gerekli PHP kendi validating kod yazmak biri bu: DTD, XML Şeması veya RelaxNG yapmak için üç yaygın kullanılan standartlar değil. <br /> <br /> * DTD SGML gün gelir bir standart olduğunu ve bazı isim gibi yeni XML özellikleri (sizlik çekmek). Ayrıca, XML olarak yazılmış değil, çünkü kolay ve çözümlenen değil / veya dönüştürdü. <br /> * XML Şema standart W3C tarafından tanımlanır. Çok geniş ve XML belgeleri doğrulamak için hemen hemen hayal edilebilecek her türlü ihtiyaç bakım almıştır. <br /> * RelaxNG karmaşık XML Şeması standart bir cevap vardı ve bağımsız bir grup tarafından oluşturuldu. çok XML Şeması daha uygulanması daha kolay olduğundan daha çok ve daha programları RelaxNG desteği. <br /> <br />Eğer RelaxNG gitmek için miras şema belge veya aşırı karmaşık XML belgeleri, yoksa. Daha kolay, daha kolay okuma yazma, ve daha fazla araçları destekler. Hatta otomatik olarak XML belge (ler örnek bir RelaxNG belge oluşturur araç Trang denilen) seçmelisiniz. Ayrıca, yalnızca (ve RelaxNG DTDlerinden yaşlanma) tam libxml2 tarafından desteklenen, tam XML Şeması desteği beraberinde geliyor olmasına rağmen. <br /> <br />XML belgeleri doğrulamak için sözdizimi oldukça basittir: <br /> <br /> * $ Dom-> doğrulamak ('articles.dtd'); <br /> 'Articles.rng * $ dom-> relaxNGValidate ('); <br /> * $ Dom-> schemaValidate ('articles.xsd'); <br /> <br />Şu anda bunların hepsi sadece doğru veya yanlış dönüş. Hatalar PHP uyarılar olarak ortaya dökülmektedir. Açıkçası bu ideal şekilde kullanıcıya iyi geribildirim vermek değildir ve biri bültenleri PHP 5.0.0 sonra artırılacaktır. Tam uygulama halen tartışılan, ama kesinlikle daha iyi bir hata çözümleme hataları ve benzeri raporlar sağlayacaktır. <br />SimpleXML <br /> <br />SimpleXML PHP XML ailesinin en yeni üyesi. SimpleXML uzatma amacı XML belgeleri standart nesne özellikleri ve tekrarlayıcılara kullanarak kolay erişim sağlamaktır. Bu eklenti birçok yöntem yok, ama oldukça güçlü yine's. belgemizde tüm başlık düğümleri Başlarken öncekinden çok daha az kod gerektirir: <br /> <br />$ Sxe = simplexml_load_file ("articles.xml"); <br />$ Öğe olarak foreach ($ sxe-> öğe) ( <br /> print $ öğe-> title. ""; <br />) <br /> <br />Bu ne işe yarar? Bir SimpleXML nesne haline İlk yükler articles.xml. Sonra tüm elemanlar öğe mülkiyet $ sxe-> öğeyle adlı alır. Son olarak $ öğe-> title bize başlık elemanın içeriğini verir. Hepsi bu kadar. Ayrıca kullanarak birleşmeli diziler ile öznitelikleri sorgu olabilir: $ öğe-> title ['id']. <br /> <br />Gördüğünüz gibi, bu arkasında bir çok sihirli, ve farklı şekillerde istenilen sonucu elde etmek için vardır. Örneğin, $ öğe-> title 0] döndürür örnek olarak aynı sonucu [. Ben - XPath gelen olarak Öte yandan, foreach ($ sxe-> $ öğe olarak madde-> title) sadece döner ilk başlık, ve tüm başlıklar belgede (depolanan - umuyordum). <br /> <br />SimpleXML aslında bir ilk uzantılarının yeni özellikler Zend Engine 2 ile mevcut en kullanmaktır. Bu nedenle de bu yeni özellikler için deneme alanı's. Eğer hata ve beklenmedik davranış nadir gelişme bu aşamada değildir bilmelidir. <br /> <br />tüm düğümleri arasında geleneksel "loop yanı sıra" yaklaşımı, yukarıdaki örnekte de görüldüğü gibi, orada da SimpleXML, bireysel nodlarına daha kolay erişim sağlayan bir XPath arayüzü's: <br /> <br />$ Öğe olarak / articles / item / title foreach ($ sxe-> xpath (')) ( <br /> print $ öğe. ""; <br />) <br /> <br />Itiraf kod önceki örnekte daha kısa değil, verilen ya da çok karmaşık, içi içe geçmiş XML belgeleri bu SimpleXML ile kullanarak XPath birlikte Yazmaya bir sürü kaydeder bulacaksınız. <br />SimpleXML belgelere Yazma <br /> <br />Sadece parse edemez ve okumak değil, aynı zamanda SimpleXML belgeleri değiştirebilirsiniz. bir ölçüde En azından, ve: <br /> <br />$ Sxe-> madde-> title = "XML PHP5 içinde"; başlık elemanı için / yeni metin içerik <br />$ Sxe-> madde-> title ['kimlik'] = 34; başlık elemanı / / yeni özellik <br />$ XmlString = $ sxe-> asXML (); / / bir seri XML dizge olarak SimpleXML nesnesi döndürür <br />print $ xmlString; <br />Birlikte Çalışabilirlik <br /> <br />SimpleXML da libxml2 dayalı olduğu için, kolayca DomDocument nesneleri ve yardımcısı hız üzerinde büyük bir etkisi (belge tam tersi olmadan bulunmamış dahili kopyalanacak) SimpleXML nesneleri dönüştürebilirsiniz. Bu mekanizma ile, aracı en iyi el iş için uygun kullanarak iki dünyanın en iyisi olabilir. Bu aşağıdaki yöntemleri çalışır: <br /> <br /> * $ Sxe = simplexml_import_dom ($ dom); <br /> * $ Dom = dom_import_simplexml ($ sxe); <br /> <br />XSLT <br /> <br />XSLT diğer XML belgeleri XML belgeleri dönüştürülmesi için kullanılan bir dildir. XSLT kendisi XML olarak yazılmış ve farklı bir yaklaşıma sahip fonksiyonel diller, ailesine ait olduğu ve nesne odaklı PHP gibi diller prosedürel bir. <br /> <br />İki farklı XSLT işlemcileri PHP 4 uygulanmaktadır: Sablotron (idi daha yaygın olarak kullanılan ve xslt uzantısının bilinir), ve libxslt (domxml uzantısı içinde). Iki API'ler, birbiriyle uyumlu değildi ve onların şekil sets da farklıydı. <br /> <br />PHP 5, sadece libxslt işlemci desteklenir. o da libxml2 dayanmaktadır ve çünkü bu yüzden mükemmel PHP 5 XML kavramı sığar Libxslt seçildi. <br /> <br />Teorik olarak Sablotron PHP 5 de bağlanma noktasına mümkün, ama olacak maalesef henüz hiç kimse bunu. Bu nedenle, PHP 5 için libxslt işlemci geçmek zorunda kalacaktır Sablotron kullanıyorsanız. libxslt olduğunu - JavaScript desteği hariç - özellik Sablotron eşdeğer. Hatta yararlı Sablotron özgü düzeni işleyicileri çok daha güçlü ve taşınabilir PHP akarsuları ile reimplemented olabilir. Eğer çift olabilir ücretsiz güzel bir hız artışı (yürütme hızı alırsınız Ayrıca, libxslt en hızlı XSLT uyarlaması kullanılabilir biridir Sablotron o). <br /> <br />diğer tüm uzantıları bu makalede olduğu gibi, DOM uzatma ve tersi XSL uzantılı XML belgeleri ile değiştirebilirsiniz. ext / xsl bir arayüz yüklemek ve XML belgeleri kurtarmak bulunmamış gibi Aslında size, ama DOM uzantısından birini kullanır. <br /> <br />Bir XSLT dönüşüm başlatmak için kullanılır, ve birçok yöntem gerek yok, onun için hiçbir W3C standart, bu nedenle API Mozilla oldu "ödünç" değil. <br /> <br />Öncelikle, bir XSLT stil gerekir. Hamur ertesi gün yeni bir dosya içine ve articles.xsl olarak kaydedin: <br /> <br /><? Xml version = 1.0 "encoding =" iso-8859-1 "?> <br /><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <br /> <xsl:param name="titles" /> <br /> match="/articles"> match="Sheets"> <br /> <h2> <xsl:value-of select="$titles" /> </ h2> <br /> <xsl:for-each select=".//title"> <br /> <h3> <xsl: value-of select = "." /> </ H3> <br /> </ Xsl: for-each> <br /> </ Xsl: template> <br /></ Xsl: stylesheet> <br /> <br />Sonra bir PHP betiği ile arama: <br /> <br /><? Php <br /> <br />/ * Yük xml dosya ve stylesheet domdocuments * gibi / <br />$ Xsl = new DomDocument (); <br />$ Xsl-> yük ("articles.xsl"); <br />$ Inputdom = new DomDocument (); <br />$ Inputdom-> yük ("articles.xml"); <br /> <br />/ * Işlemci ve ithalat stil oluştur * / <br />$ Proc = new XsltProcessor (); <br />$ Xsl = $ proc-> importStylesheet ($ xsl); <br />$ Proc-> setParameter (null, "başlık", "Başlıklar"); <br /> <br />/ * Dönüşümü ve çıkış xml belge * / <br />$ Newdom = $ proc-> transformToDoc ($ inputdom); <br />print $ newdom-> saveXML (); <br /> <br />?> <br /> <br />DOM yöntemi load () yardımıyla Yukarıdaki örnekte ilk yükler XSLT stil articles.xsl. Sonra daha sonra idam yüklü XSLT stylesheet ithalat yeni XsltProcessor nesnesi oluşturur. Parametreleri setParameter ile (namespaceURI, isim, değer) ve ayarlanabilir nihayet transformToDoc ($ inputdom), hangi yeni DomDocument dönüşleri ile dönüşüm başlar. <br /> <br />Bu API, sadece bir kez ve yeniden olarak () transormToDoc farklı XML belgeleri için uygulanabilecek yüklenerek avantajı aynı stil ile XSLT dönüşümleri onlarca yapabilirsiniz sahiptir. <br /> <br />Ayrıca () transformToDoc, orada iki dönüşüm yöntemi vardır; transformToXML ($ dom), hangi bir dize döndürür ve transformToURI ($ dom, $ uri), hangi bir dosya veya PHP akışına dönüşüm kaydeder. DomDocument bu bilgileri muhafaza edemez çünkü <xsl:output method="html"> veya girinti = gibi bir XSLT özelliği kullanmak istiyorsanız, bu "evet", sen transformToDoc () kullanamazsınız unutmayın. Bu direktiflerin bir dize ya da bir dosyaya yalnızca çıkış dönüşüm doğrudan kullanılacaktır. <br />PHP Fonksiyonları Arama <br /> <br />Bir son özellikleri XSLT uzantısı ekledi yeteneği bir XSLT stylesheet içinden herhangi bir PHP fonksiyonu aramak. XML / XSLT titiz kesinlikle bu (örneğin stylesheets taşınabilir artık olmayacak ve kolay bir mantık ve tasarım karışımı olabilir) sevmemek de, çok özel durumlarda yararlı olabilir. XSLT çok zaman işlevlerine yıkıldığında sınırlıdır. Hatta uygulamaya ağrılı olabilir farklı dilde bir tarih çıkış - ama artık PHP kendisi ile daha karışık bu özelliği ile. İşte XSLT içine bir fonksiyon ekleyerek için PHP pasajı's <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Gönderen <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/06830759132691121546' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/06830759132691121546' rel='author' title='author profile'> <span itemprop='name'>Ahmet Bakıralp</span> </a> </span> </span> <span class='post-timestamp'> zaman: <meta content='http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html' itemprop='url'/> <a class='timestamp-link' href='http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2010-07-12T19:48:00+03:00'>19:48</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1533896571'> <a href='https://www.blogger.com/post-edit.g?blogID=6702287170841642521&postID=2393681611110552811&from=pencil' title='Kaydı Düzenle'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Etiketler: <a href='http://acemiphpci.blogspot.com/search/label/php%205%20ve%20xml' rel='tag'>php 5 ve xml</a>, <a href='http://acemiphpci.blogspot.com/search/label/php5' rel='tag'>php5</a>, <a href='http://acemiphpci.blogspot.com/search/label/xml' rel='tag'>xml</a>, <a href='http://acemiphpci.blogspot.com/search/label/xml%20ve%20php' rel='tag'>xml ve php</a> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> <div class='comments' id='comments'> <a name='comments'></a> <h4>Hiç yorum yok:</h4> <div id='Blog1_comments-block-wrapper'> <dl class='avatar-comment-indent' id='comments-block'> </dl> </div> <p class='comment-footer'> <div class='comment-form'> <a name='comment-form'></a> <h4 id='comment-post-message'>Yorum Gönder</h4> <p> </p> <a href='https://www.blogger.com/comment/frame/6702287170841642521?po=2393681611110552811&hl=tr' id='comment-editor-src'></a> <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe> <script src='https://www.blogger.com/static/v1/jsbin/4269703388-comment_from_post_iframe.js' type='text/javascript'></script> <script type='text/javascript'> BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html'); </script> </div> </p> </div> </div> <div class='inline-ad'> <script type="text/javascript"><!-- google_ad_client="pub-1967291510703956"; google_ad_host="pub-1556223355139109"; google_ad_width=300; google_ad_height=250; google_ad_format="300x250_as"; google_ad_type="text_image"; google_ad_host_channel="0001"; google_color_border="FFFFFF"; google_color_bg="FFFFFF"; google_color_link="669922"; google_color_url="555544"; google_color_text="555544"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='http://acemiphpci.blogspot.com/2010/07/php-ve-snf-class-temelleri.html' id='Blog1_blog-pager-newer-link' title='Sonraki Kayıt'>Sonraki Kayıt</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://acemiphpci.blogspot.com/2010/07/php-de-fonksiyonlar-ve-kullanm.html' id='Blog1_blog-pager-older-link' title='Önceki Kayıt'>Önceki Kayıt</a> </span> <a class='home-link' href='http://acemiphpci.blogspot.com/'>Ana Sayfa</a> </div> <div class='clear'></div> <div class='post-feeds'> <div class='feed-links'> Kaydol: <a class='feed-link' href='http://acemiphpci.blogspot.com/feeds/2393681611110552811/comments/default' target='_blank' type='application/atom+xml'>Kayıt Yorumları (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget AdSense' data-version='1' id='AdSense1'> <div class='widget-content'> <script type="text/javascript"><!-- google_ad_client="pub-1967291510703956"; google_ad_host="pub-1556223355139109"; google_alternate_ad_url="http://www.blogger.com/img/blogger_ad160x600.html"; google_ad_width=160; google_ad_height=600; google_ad_format="160x600_as"; google_ad_type="text_image"; google_ad_host_channel="0001"; google_color_border="FFFFFF"; google_color_bg="FFFFFF"; google_color_link="555544"; google_color_url="669922"; google_color_text="555544"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <div class='clear'></div> </div> </div></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='sidebar section' id='sidebar-right-2-1'><div class='widget Profile' data-version='1' id='Profile1'> <h2>Hakkımda</h2> <div class='widget-content'> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://www.blogger.com/profile/06830759132691121546' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'> Ahmet Bakıralp </a> </dt> </dl> <a class='profile-link' href='https://www.blogger.com/profile/06830759132691121546' rel='author'>Profilimin tamamını görüntüle</a> <div class='clear'></div> </div> </div></div> </td> <td class='columns-cell'> <div class='sidebar section' id='sidebar-right-2-2'><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Arşivi</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2011/'> 2011 </a> <span class='post-count' dir='ltr'>(6)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2011/06/'> Haziran </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2011/05/'> Mayıs </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/'> 2010 </a> <span class='post-count' dir='ltr'>(62)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/09/'> Eylül </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/08/'> Ağustos </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/07/'> Temmuz </a> <span class='post-count' dir='ltr'>(20)</span> <ul class='posts'> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ile-jquery-kullanm.html'>Php ile Jquery Kullanımı</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/phpde-md5-fonksiyonu.html'>Php'de MD5 Fonksiyonu</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-de-diziler-ve-donguler.html'>php de diziler ve döngüler</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/ekstra-ezsql-fonksiyonlar.html'>Ekstra Ezsql Fonksiyonları</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/en-populer-php-veritaban-snf-ezsql.html'>En Popüler Php veritabanı Sınıfı EzSql</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/tasarmclar-icin-jquery-kullanm.html'>Tasarımcılar için Jquery Kullanımı</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-snflarnda-yapclar-ve-ykclar.html'>Php sınıflarında Yapıcılar ve yıkıcılar ( __constr...</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-5-ve-ozdevinimli-nesne.html'>Php 5 ve Özdevinimli Nesne</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ve-snf-class-temelleri.html'>Php ve Sınıf (Class) Temelleri</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html'>Php ve Xml deki Yenilikler</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-de-fonksiyonlar-ve-kullanm.html'>Php de Fonksiyonlar ve Kullanım Şekilleri</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-mysql-ve-ajax-kullanm-ornegi.html'>Php mysql ve ajax kullanım örneği</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ile-resimlerin-uzerine-yaz-yazmak.html'>Php ile resimlerin üzerine yazı yazmak</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ile-dizin-ve-dizin-altndaki.html'>Php ile Dizin ve Dizin altındaki Dosyaları silme</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-mysql-ve-ajax-birlikte-kullanmak.html'>Php, mysql ve ajax' ı birlikte kullanmak</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-ile-istenmeyen-ip-leri-banlamak.html'>Php ile istenmeyen ip leri banlamak</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/installation-instructions.html'>Installation Instructions</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/sitenize-ie7-den-eski-tarayclarla.html'>Sitenize İE7 den eski tarayıcılarla Girilmesin</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-de-post-degiskenini-nasl-kullanrm.html'>Php de $_POST[] Değişkenini Nasıl Kullanırım ?</a></li> <li><a href='http://acemiphpci.blogspot.com/2010/07/php-date-fonksiyonu-kullanm.html'>PHP date() Fonksiyonu Kullanımı</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/06/'> Haziran </a> <span class='post-count' dir='ltr'>(23)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='http://acemiphpci.blogspot.com/2010/05/'> Mayıs </a> <span class='post-count' dir='ltr'>(13)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </td> </tr> </tbody> </table> <div class='sidebar section' id='sidebar-right-3'><div class='widget Followers' data-version='1' id='Followers1'> <h2 class='title'>İzleyiciler</h2> <div class='widget-content'> <div id='Followers1-wrapper'> <div style='margin-right:2px;'> <div><script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <div id="followers-iframe-container"></div> <script type="text/javascript"> window.followersIframe = null; function followersIframeOpen(url) { gapi.load("gapi.iframes", function() { if (gapi.iframes && gapi.iframes.getContext) { window.followersIframe = gapi.iframes.getContext().openChild({ url: url, where: document.getElementById("followers-iframe-container"), messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { '_ready': function(obj) { window.followersIframe.getIframeEl().height = obj.height; }, 'reset': function() { window.followersIframe.close(); followersIframeOpen("https://www.blogger.com/followers.g?blogID\x3d6702287170841642521\x26colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaByMzMzMzMzMiByMyOWFhZTEqByMyZDMwMzcyByM4Y2UxZjU6ByMzMzMzMzNCByMyOWFhZTFKByNmZmZmZmZSByMyOWFhZTFaC3RyYW5zcGFyZW50\x26pageSize\x3d21\x26postID\x3d2393681611110552811\x26origin\x3dhttp://acemiphpci.blogspot.com/"); }, 'open': function(url) { window.followersIframe.close(); followersIframeOpen(url); }, 'blogger-ping': function() { } } }); } }); } followersIframeOpen("https://www.blogger.com/followers.g?blogID\x3d6702287170841642521\x26colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaByMzMzMzMzMiByMyOWFhZTEqByMyZDMwMzcyByM4Y2UxZjU6ByMzMzMzMzNCByMyOWFhZTFKByNmZmZmZmZSByMyOWFhZTFaC3RyYW5zcGFyZW50\x26pageSize\x3d21\x26postID\x3d2393681611110552811\x26origin\x3dhttp://acemiphpci.blogspot.com/"); </script></div> </div> </div> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3' name='Altbilgi'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Harikalar Tic. teması. <a href='https://www.blogger.com' target='_blank'>Blogger</a> tarafından desteklenmektedir. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/4290687098-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY4IpzsWVwWPODnE7LxLyfQSrk74ig:1715230681998';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6702287170841642521','//acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html','6702287170841642521'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6702287170841642521', 'title': 'Bir Aceminin Php G\xfcnl\xfc\u011f\xfc', 'url': 'http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html', 'canonicalUrl': 'http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html', 'homepageUrl': 'http://acemiphpci.blogspot.com/', 'searchUrl': 'http://acemiphpci.blogspot.com/search', 'canonicalHomepageUrl': 'http://acemiphpci.blogspot.com/', 'blogspotFaviconUrl': 'http://acemiphpci.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'tr', 'localeUnderscoreDelimited': 'tr', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Bir Aceminin Php G\xfcnl\xfc\u011f\xfc - Atom\x22 href\x3d\x22http://acemiphpci.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Bir Aceminin Php G\xfcnl\xfc\u011f\xfc - RSS\x22 href\x3d\x22http://acemiphpci.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Bir Aceminin Php G\xfcnl\xfc\u011f\xfc - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6702287170841642521/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Bir Aceminin Php G\xfcnl\xfc\u011f\xfc - Atom\x22 href\x3d\x22http://acemiphpci.blogspot.com/feeds/2393681611110552811/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-1967291510703956', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': true, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/af0c04622aa32429', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Ba\u011flant\u0131y\u0131 al', 'key': 'link', 'shareMessage': 'Ba\u011flant\u0131y\u0131 al', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Facebook platformunda payla\u015f', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Twitter platformunda payla\u015f', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Pinterest platformunda payla\u015f', 'target': 'pinterest'}, {'name': 'E-posta', 'key': 'email', 'shareMessage': 'E-posta', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27tr\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Devam\u0131', 'pageType': 'item', 'postId': '2393681611110552811', 'pageName': 'Php ve Xml deki Yenilikler', 'pageTitle': 'Bir Aceminin Php G\xfcnl\xfc\u011f\xfc: Php ve Xml deki Yenilikler'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'D\xfczenle', 'linkCopiedToClipboard': 'Ba\u011flant\u0131 panoya kopyaland\u0131!', 'ok': 'Tamam', 'postLink': 'Yay\u0131n Ba\u011flant\u0131s\u0131'}}, {'name': 'template', 'data': {'name': 'Awesome Inc.', 'localizedName': 'Harikalar Tic.', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'icy', 'variantId': 'icy'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Php ve Xml deki Yenilikler', 'description': 'ama\xe7lanan \u0130zleyici\r \r Bu makalede PHP geli\u015ftiriciler i\xe7in PHP 5 yeni XML i\u015flevini kullanarak ilgilenen her d\xfczeyde tasarlanm\u0131\u015ft\u0131r. XML hakk\u0131...', 'url': 'http://acemiphpci.blogspot.com/2010/07/php-ve-xml-deki-yenilikler.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 2393681611110552811}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'crosscol', document.getElementById('BlogSearch1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/4093318766-lbx__tr.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/13464135-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense1', 'sidebar-right-1', document.getElementById('AdSense1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-2-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-2-2', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Y\xfckleniyor\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_FollowersView', new _WidgetInfo('Followers1', 'sidebar-right-3', document.getElementById('Followers1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>