{"id":706,"date":"2014-02-11T12:40:45","date_gmt":"2014-02-11T10:40:45","guid":{"rendered":"http:\/\/www.gencnesil.org\/?p=706"},"modified":"2014-03-20T14:39:24","modified_gmt":"2014-03-20T12:39:24","slug":"xml-dokumani-nedir-xml-php-kullanimi-xmlrpc-php","status":"publish","type":"post","link":"https:\/\/gncz.net\/index.php\/xml-dokumani-nedir-xml-php-kullanimi-xmlrpc-php.html","title":{"rendered":"Xml d\u00f6k\u00fcman\u0131 nedir Xml php kullan\u0131m\u0131 xmlrpc.php"},"content":{"rendered":"<p>XML platformlar aras\u0131 bir haberle\u015fme dili olarak daha h\u0131zl\u0131 evrensel bir dildir. Xml<br \/>\nbaz\u0131lar\u0131na g\u00f6reyse yeni bir web devrimidir.XML bazen dok\u00fcmanlar\u0131 depolamak amac\u0131 ile bir<br \/>\nveri taban\u0131 olarak kullan\u0131l\u0131r.Fakat XML nin temel amac\u0131 veri depolamak de\u011fildir.<!--more-->XML in<br \/>\ngeli\u015ftirilmesinin temel amac\u0131 bir sistemden di\u011ferine ortak bir format i\u00e7inde bilgileri<br \/>\nge\u00e7irmektir.XML (eXtensible Markup Language) bir data format\u0131d\u0131r.XML yap\u0131land\u0131r\u0131lm\u0131\u015f<br \/>\ndok\u00fcmanlar\u0131n web \u00fczerinde el de\u011fi\u015ftirilmesi i\u00e7in geli\u015ftirilmi\u015ftir. World Wide Web<br \/>\nconsortium(w3c) taraf\u0131ndan tan\u0131mlanm\u0131\u015f bir standartt\u0131r. XML hakk\u0131nda bilgiye ve onunla<br \/>\nili\u015fkili teknolojiler http:\/\/www.w3.org\/XML adresinden bulunabilir.<br \/>\nVOCABULARY<br \/>\nXML dok\u00fcmanlar\u0131 ile \u00e7al\u0131\u015f\u0131rken bir \u00e7ok bilinmeyen terim ile kar\u015f\u0131la\u015fabilirsiniz.A\u015fa\u011f\u0131daki<br \/>\n\u00f6rnek bir xml dok\u00fcman\u0131n\u0131 g\u00f6sterir o bir xhtml dok\u00fcman\u0131d\u0131r.<br \/>\n&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243; ?&gt;<br \/>\n&lt;!DOCTYPE html<br \/>\nPUBLIC &#8220;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&#8221;<br \/>\n&#8220;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&#8221;&gt;<br \/>\n&lt;html xmlns=&#8221;http:\/\/www.w3.org\/1999\/xhtml&#8221; xml:lang=&#8221;en&#8221; lang=&#8221;en&#8221;&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;title&gt;XML Example&lt;\/title&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body background=&#8221;bg.png&#8221;&gt;<br \/>\n&lt;p&gt;<br \/>\nMoved to &lt;a href=&#8221;http:\/\/example.org\/&#8221;&gt;example.org&lt;\/a&gt;.<br \/>\n&lt;br \/&gt;<br \/>\nfoo &amp;amp; bar<br \/>\n&lt;\/p&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<br \/>\nlk sat\u0131r XML bildirimidir.xml versiyonunu ve xml encode dosyas\u0131n\u0131 belirtir.Bu sat\u0131r &lt;? le<br \/>\nba\u015flar.Bu dosyay\u0131<br \/>\nbir PHP scripti olarak kullan\u0131rsan\u0131z bir problem ortaya \u00e7\u0131kabilir.E\u011fer<br \/>\nphp.ini dosyan\u0131zda shor_open_tag=On ayar\u0131na sahipseniz ki bu bir varsay\u0131lan ayard\u0131r.PHP bu<br \/>\nkarakter kombinasyonunu g\u00f6rd\u00fc\u011f\u00fcnde(&lt;? ) bunun bir php b\u00f6l\u00fcm\u00fc a\u00e7\u0131l\u0131\u015f\u0131 oldu\u011funu sanar.E\u011fer<br \/>\n1-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nXML ile \u00e7al\u0131\u015f\u0131rken bu \u015fekilde bir problemle kar\u015f\u0131la\u015fmak istemiyorsan\u0131z PHP shor_open_tag<br \/>\nayar\u0131n\u0131 off yap\u0131n\u0131z.<br \/>\nXML bildirisinden sonara 3 sat\u0131r boyunca DOCTYPE bildirisni g\u00f6r\u00fcr\u00fcz.Bu bildiri &lt; &gt; i\u00e7inde<br \/>\nyaz\u0131l\u0131r.Bu k\u0131s\u0131m XML i\u00e7indeki ana tag\u0131n &lt;html&gt; oldu\u011fu bildirilir. PUBLIC &#8220;-\/\/W3C\/\/DTD<br \/>\nXHTML 1.0 Transitional\/\/EN&#8221; bildirisi dok\u00fcman\u0131n tipini bildirir ve Dok\u00fcman Tip Tan\u0131m\u0131n\u0131n<br \/>\n(Document Type Defination) http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/ \/xhtml1-transitional.dtd<br \/>\nadresinde bulanabilece\u011fi bildirilir.Bir DTD dosyas\u0131 bir dok\u00fcman\u0131n tip yap\u0131s\u0131n\u0131 tan\u0131mlar.<br \/>\nDok\u00fcman\u0131n\u0131n geri kalan\u0131 i\u00e7eri\u011fin kendisinden meydana gelir ve root element ile ba\u015flar ayr\u0131ca<br \/>\nana d\u00fc\u011f\u00fcm olarak ta adland\u0131r\u0131l\u0131r.<br \/>\n&lt;html<br \/>\nxmlns=&#8221;http:\/\/www.w3.org\/1999\/xhtml&#8221; xml:lang=&#8221;en&#8221; lang=&#8221;en&#8221;&gt;<br \/>\nXHTML 1.0 Transitional DTD ye g\u00f6re root element bir xmls bildirisi i\u00e7erir XHTML<br \/>\nnamespace si i\u00e7in.Bir namespace iki ayr\u0131 dok\u00fcman tipinin bir varl\u0131kta birle\u015fimini bir XML<br \/>\ni\u00e7inde bulunmas\u0131n\u0131 sa\u011flar.\u00d6rnek olarak XHTML i\u00e7inde g\u00f6m\u00fcl\u00fc olan MatML<br \/>\nRoot elementinin \u00e7ocuk d\u00fc\u011f\u00fcmleri<br \/>\n&lt;head&gt;<br \/>\n&lt;title&gt;XML Example&lt;\/title&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body background=&#8221;bg.png&#8221;&gt;<br \/>\n&lt;p&gt;<br \/>\nMoved to &lt;a href=&#8221;http:\/\/example.org\/&#8221;&gt;example.org&lt;\/a&gt;.<br \/>\n&lt;br \/&gt;<br \/>\nfoo &amp;amp; bar<br \/>\n&lt;\/p&gt;<br \/>\n&lt;\/body&gt;<br \/>\nThe head tags (&lt;head&gt;and&lt;\/head&gt;) enclose the nested title tag that specify the title XML<br \/>\nExample.<br \/>\nHead taglar\u0131 ba\u015fl\u0131k tag\u0131n\u0131n\u0131(title) \u00e7evir title tag\u0131 XML \u00f6rne\u011finin ba\u015fl\u0131\u011f\u0131n\u0131 bildirir.<br \/>\nBody tag\u0131 arkapalan\u0131n(backgraund) niteliklerini i\u00e7erir. Attribute belirli bir tag hakk\u0131nda ilave<br \/>\nbilgiler i\u00e7irir.XML standartlar\u0131 bir de\u011fere sahip olamak i\u00e7in b\u00fct\u00fcn attributeleri ister.Attribute<br \/>\ni\u00e7in bir de\u011fer \u00e7ift veya tek t\u0131rnek i\u015fareti i\u00e7inde verilmelidir.Xml d\u00f6k\u00fcman\u0131n ba\u015f\u0131ndan sonuna<br \/>\nde\u011fin tek t\u0131rnak kullan\u0131lmas\u0131 tavsiye edilir fakat bu bir zorunluluk de\u011fildir.Bu \u00f6rnekte<br \/>\nbackground attribute bir background resmi belirtir bu resim bg.png dosyas\u0131 i\u00e7inde bulunur.<br \/>\nB\u00fct\u00fcn a\u00e7\u0131k(&lt;p&gt;) taglar uygun bir kapan\u0131\u015f tag\u0131na ihtiya\u00e7 duyar \u00f6rne\u011fin &lt;\/p&gt;<br \/>\nBir element i\u00e7eri\u011fe sahip olamaz. \u00e7eri\u011fi taglar\u0131n aras\u0131na yerle\u015ftirirsiniz.<br \/>\n2-14<\/p>\n<h3>XML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<\/h3>\n<p>Baz\u0131 \u00f6zel karakterler probleme sebep olabilir.\u00d6rne\u011fin &lt;,&gt; karakterleri taglar i\u00e7in<br \/>\nkullan\u0131l\u0131r.XML i\u00e7inde kullan\u0131lan &lt;,&gt;karakterlerine bir tag olarak davran\u0131l\u0131r.<br \/>\nEntity kavaram\u0131 \u00f6zel karakterlerin kullan\u0131lmas\u0131 olanakl\u0131 k\u0131lmak i\u00e7in kullan\u0131l\u0131r.<br \/>\nEntity karakter kombinasyonudur.Bu kombinasyon bir &amp; karakteri ile ba\u015flar ve ; karakteri ile<br \/>\nbiter.<br \/>\nXML dok\u00fcman\u0131 i\u00e7inde \u00f6zel karakterleri kullanmak yerine bu kombinasyonu kullanabilirisin.<br \/>\nEntity ler olmas\u0131 gerekti\u011fi gibi tan\u0131n\u0131rlar ve \u00f6zel karakterler olarak davran\u0131lmazlar.<br \/>\n\u00d6rne\u011fin &lt; karakterini g\u00f6stermek i\u00e7in &amp;lt; kombinasyonunu ve &lt; karakterini g\u00f6stermek i\u00e7inse<br \/>\n&amp;gt; karakterini kullanabilirsin.<br \/>\nEntity leri kulland\u0131\u011f\u0131n zaman \u00f6zel karakterler dok\u00fcman\u0131na dahil edilir ve bunlara bir tag<br \/>\nolarak davran\u0131lmazlar.<br \/>\nEntity ler ayr\u0131ca ascii olamayan karakterlerin dok\u00fcman\u0131n\u0131za girilmesi i\u00e7inde kullan\u0131l\u0131r \u00f6rne\u011fin<br \/>\n\u20ac ve \u00eb karakterleri.Bu iki karakter i\u00e7in entity ler &amp;euro; ve &amp;euml; dir. http:\/\/www.w3.org\/<br \/>\nTR\/REC-html40\/sgml\/entities.html. \u00f6zel karakterler i\u00e7in entity listesidir.&amp; karakter i\u00e7in<br \/>\n&amp;amp;<\/p>\n<h4>XML D\u00d6K\u00dcMANLARINI \u00c7\u00d6Z\u00dcMLEMEK<br \/>\nXML D\u00d6K\u00dcMANININ \u00c7\u00d6Z\u00dcMLENMESI<\/h4>\n<p>Xml dok\u00fcman\u0131 okumak i\u00e7in iki teknik kullan\u0131l\u0131r :SAX(Simple Api for XML )<br \/>\nDOM(Document Object Model).SAX :XML dok\u00fcman\u0131 boyunca ilerlerken her tag<br \/>\nba\u015flang\u0131c\u0131nda ve biti\u015finde ya da farkl\u0131 bir element ile kar\u015f\u0131la\u015f\u0131ld\u0131\u011f\u0131nda bir olay ate\u015flenir.Bu<br \/>\nate\u015flenen olaylara hangi fonksiyonlar\u0131 ba\u011flayaca\u011f\u0131n\u0131 ve bu fonksiyonlar\u0131n bu olaylar<br \/>\nkar\u015f\u0131l\u0131\u011f\u0131nda hangi komutlarla kar\u015f\u0131l\u0131k verece\u011fini kodlamal\u0131s\u0131n. (nas\u0131l y\u00f6netece\u011fine karar<br \/>\nvermelisin.)DOM:Bu metoda g\u00f6re t\u00fcm XML bir a\u011fa\u00e7 yap\u0131s\u0131ndad\u0131r.Bu a\u011fa\u00e7 yap\u0131s\u0131 i\u00e7inde PHP<br \/>\nfonksiyonlar\u0131 kullanarak gezinebilirsin<br \/>\nNot:PHP di\u011fer bir yol daha sunar bu yol SimpleXML Extension u kullanmakt\u0131r.<br \/>\nS.imple A.pi for X.ml (SAX)<br \/>\nlk olarak bir parser nesnesi yaratmal\u0131y\u0131z ve daha sonra bu olaylar\u0131 y\u00f6netmek i\u00e7in kodlar\u0131m\u0131z<br \/>\nyazmal\u0131y\u0131z.<br \/>\n$xml = xml_parser_create(&#8216;UTF-8&#8217;);<br \/>\nBu fonksiyon ba\u015far\u0131 ile \u00e7al\u0131\u015ft\u0131\u011f\u0131 zaman ,bir XML parser y\u00f6neticisi d\u00f6nd\u00fcr\u00fcr Bu y\u00f6netici di\u011fer<br \/>\nXML parsing fonksiyonlar\u0131 ile kullan\u0131l\u0131r.<br \/>\n3-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nSax olay y\u00f6netimi mant\u0131\u011f\u0131 ile \u00e7al\u0131\u015f\u0131r.Bu olaylar\u0131 y\u00f6netmek i\u00e7in olay y\u00f6neticileri (fonksiyon<br \/>\nlar) geli\u015ftirmeliyiz.Bu temel \u00f6rnekte \u00fc\u00e7 olay\u0131 y\u00f6netmeye \u00e7al\u0131\u015faca\u011f\u0131z bu olaylar;tag a\u00e7\u0131l\u0131\u015f\u0131 ,tag<br \/>\nkapan\u0131\u015f\u0131 ve karakter verisine rastlanmas\u0131 olaylar\u0131d\u0131r.Bu olaylar \u00f6nemlidir.<br \/>\nxml_set_element_handler($xml, &#8216;start_handler&#8217;, &#8216;end_handler&#8217;);<br \/>\nxml_set_character_data_handler($xml, &#8216;character_handler&#8217;);<br \/>\nBu fonksiyonlar ile iki y\u00f6neticiyi tan\u0131mlar\u0131z.Bu tan\u0131mlamalar herhangi bir olay meydana<br \/>\ngelmeden yap\u0131lamal\u0131d\u0131r.\u015eimdi y\u00f6netici fonksiyonlar\u0131n nas\u0131l tan\u0131mland\u0131\u011f\u0131na bakal\u0131m.<br \/>\nBir \u00f6nceki ifadede start_handler y\u00f6netici fonksiyonu \u00fc\u00e7 parametreyi al\u0131r. lk parametre XML<br \/>\nparser object ,ikincisi tag\u0131n ismi ,son parametre ise bir dizidir.Bu dizide taga ait tan\u0131mlay\u0131c\u0131<br \/>\nattribute ler.<\/p>\n<h4>TAG BA\u015eLANGICI<\/h4>\n<p>Tag isimleri varsay\u0131lan olarak b\u00fcy\u00fck harf ile ge\u00e7irilir.Bu durumu de\u011fi\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki<br \/>\nifadeyi kullan\u0131n.Bu ifadedeki xml de\u011fi\u015fekeni xml parser nesnesidir.<br \/>\nxml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, false);<br \/>\nfunction start_handler ($xml, $tag, $attributes)<br \/>\n{<br \/>\nglobal $level;<br \/>\necho &#8220;n&#8221;. str_repeat(&#8216; &#8216;, $level). &#8220;&gt;&gt;&gt;$tag&#8221;;<br \/>\nforeach ($attributes as $key =&gt; $value) {<br \/>\necho &#8221; $key $value&#8221;;<br \/>\n}<br \/>\n$level++;<br \/>\n}<br \/>\nTAG KAPANI\u015eI<br \/>\nSadece XML nesnesi ve tag ismi g\u00f6nderilir.<br \/>\nfunction end_handler ($xml, $tag)<br \/>\n{<br \/>\nglobal $level;<br \/>\n$level&#8211;;<br \/>\necho str_repeat(&#8216; &#8216;, $level, &#8216; &#8216;). &#8220;&lt;&lt;&lt;$tag;<br \/>\n}<br \/>\nB\u00fct\u00fcn i\u00e7iri\u011fi g\u00f6stermekte kullanaca\u011f\u0131z birde karakter y\u00f6neticisine ihtiyac\u0131m\u0131z olacak.Bu<br \/>\ny\u00f6netici i\u00e7inde g\u00f6sterilecek olan i\u00e7iri\u011fin d\u00fczg\u00fcn g\u00f6r\u00fcnmesi i\u00e7in i\u00e7erik d\u00fczenlenir.<br \/>\nfunction character_handler ($xml, $data)<br \/>\n{<br \/>\nglobal $level;<br \/>\n$data = split(&#8220;n&#8221;, wordwrap($data, 76 \u2013 ($level * 2)));<br \/>\n4-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nforeach ($data as $line) {<br \/>\necho str_repeat(($level + 1), &#8216; &#8216;). $line. &#8220;n&#8221;;<br \/>\n}<br \/>\n}<br \/>\nB\u00fct\u00fcn olay y\u00f6neticilerimiz tan\u0131mlad\u0131ktan sonra XML dosyam\u0131z\u0131 \u00e7\u00f6z\u00fcmlemeye ba\u015flayabiliriz.<br \/>\nxml_parse($xml, file_get_contents(&#8216;test1.xhtml&#8217;));<br \/>\nT\u00fcm scriptin kodlar\u0131:<br \/>\n1. &lt;?php<br \/>\n2. function startElement($xml_parser, $name, $attributes) {<br \/>\n3. print(&#8220;&lt;p&gt;&lt;i&gt;Encountered Start Element For:&lt;\/i&gt;$namen&#8221;);<br \/>\n4. }<br \/>\n5.<br \/>\n6. function endElement($xml_parser, $name) {<br \/>\n7. print(&#8220;&lt;p&gt;&lt;i&gt;Encountered End Element For:&lt;\/i&gt;$namen&#8221;);<br \/>\n8. }<br \/>\n9.<br \/>\n10. function characterData($xml_parser, $data) {<br \/>\n11. if($data != &#8220;n&#8221;) {<br \/>\n12.<br \/>\nprint(&#8220;&lt;p&gt;&lt;i&gt;Encountered Character Data:&lt;\/i&gt;$datan&#8221;);<br \/>\n13. }<br \/>\n14. }<br \/>\n15.<br \/>\n16. function load_data($file) {<br \/>\n17. $fh = fopen($file, &#8220;r&#8221;) or die (&#8220;&lt;P&gt;COULD NOT OPEN FILE!&#8221;);<br \/>\n18. $data = fread($fh, filesize($file));<br \/>\n19. return $data;<br \/>\n20. }<br \/>\n21. \/***** MAIN *****\/<br \/>\n22. $file = &#8220;simple.xml&#8221;;<br \/>\n23. $xml_parser = xml_parser_create();<br \/>\n24. xml_set_element_handler($xml_parser, &#8220;startElement&#8221;, &#8220;endElement&#8221;);<br \/>\n25. xml_set_character_data_handler($xml_parser, &#8220;characterData&#8221;);<br \/>\n26. xml_parse($xml_parser, load_data($file)) or<br \/>\n27. die (&#8220;&lt;P&gt;ERROR PARSING XML!&#8221;);<br \/>\n27. xml_parser_free($xml_parser);<br \/>\n28.?&gt;<br \/>\nSP LT:<br \/>\nBir dizi d\u00f6nd\u00fcr\u00fcr.Eleman say\u0131s\u0131 son parametre ile s\u0131n\u0131rland\u0131r\u0131labilir. lk parametre ile string<br \/>\npar\u00e7alara b\u00f6l\u00fcn\u00fcr.Her par\u00e7a fonksiyonun d\u00f6n\u00fc\u015f dizisinin bir eleman\u0131n\u0131n kar\u015f\u0131l\u0131\u011f\u0131d\u0131r. kinci<br \/>\nparametre ise par\u00e7alara ayr\u0131lacak string tipinde de\u011fi\u015fkendir.<br \/>\narray split ( string pattern, string string [, int limit])<br \/>\n&lt;?php<br \/>\n\/\/ Delimiters may be slash, dot, or hyphen<br \/>\n5-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\n$date = &#8220;04\/30\/1973&#8221;;<br \/>\nlist($month, $day, $year) = split(&#8216;[\/.-]&#8217;, $date);<br \/>\necho &#8220;Month: $month; Day: $day; Year: $year&lt;br \/&gt;n&#8221;;<br \/>\n?&gt;<br \/>\n$date de\u011fi\u015fkeni slash nokta ya da tire karakteri ile par\u00e7alara ayr\u0131l\u0131r ve her par\u00e7a d\u00f6n\u00fc\u015f<br \/>\ndizisindeki bir elemana atan\u0131r.Sonra bu dizinin elemanlar\u0131 s\u0131ras\u0131 ile $month,$day ve $year<br \/>\nde\u011fi\u015fkenlerinde saklan\u0131r ve ekrana yazd\u0131r\u0131l\u0131r.Bu \u00f6rnekteki materyal olan string d\u00fczenli bir<br \/>\nifade kullan\u0131larak par\u00e7alara yar\u0131lm\u0131\u015ft\u0131r.<br \/>\nDocument Object Model(D.O.M)<br \/>\nSAX metodu ile xhtml veya xml dok\u00fcmanlar\u0131n\u0131 \u00e7\u00f6z\u00fcmleme i\u015flemi i\u00e7in \u00e7ok kod yazmam\u0131z<br \/>\ngerekir.DOM metodu \u00e7ok daha basittir fakat bunun bir bedeli vard\u0131r \u2013bellek kullan\u0131m\u0131.Fakat<br \/>\nb\u00f6yle olmakla beraber bizim k\u00fc\u00e7\u00fck \u00f6rne\u011fimiz i\u00e7in bu dikkate al\u0131nmayabilir.Fakat dosya<br \/>\n20MB b\u00fcy\u00fckl\u00fc\u011f\u00fcnde oldu\u011funda DOM metodunu kullan\u0131rken buna kesinlikle dikkat<br \/>\netmeliyiz.DOM XML dosyan\u0131z i\u00e7indeki her bir elementin ate\u015flenen olay\u0131 i\u00e7in bellekte bir<br \/>\na\u011fa\u00e7 yap\u0131s\u0131 olu\u015fturur.<br \/>\nBiz tree nesnesi boyunca y\u00fcr\u00fcyerek taglar olmadan t\u00fcm i\u00e7eri\u011fi g\u00f6sterebiliriz.<br \/>\n1 &lt;?php<br \/>\n2 $dom = new DomDocument();<br \/>\n3 $dom-&gt;load(&#8216;test2.xml&#8217;);<br \/>\n4 $root = $dom-&gt;documentElement;<br \/>\n5<br \/>\n6 process_children($root);<br \/>\n7<br \/>\n8 function process_children($node)<br \/>\n9{<br \/>\n10 $children = $node-&gt;childNodes;<br \/>\n11<br \/>\n12 foreach ($children as $elem) {<br \/>\n13 if ($elem-&gt;nodeType == XML_TEXT_NODE) {<br \/>\n14 if (strlen(trim($elem-&gt;nodeValue))) {<br \/>\n15 echo trim($elem-&gt;nodeValue).&#8221;n&#8221;;<br \/>\n16 }<br \/>\n17 } else if ($elem-&gt;nodeType == XML_ELEMENT_NODE) {<br \/>\n18 process_children($elem);<br \/>\n19 }<br \/>\n20 }<br \/>\n21 }<br \/>\n22 ?&gt;<br \/>\nTaglara ait olan attribute de\u011ferlerini elde etmek i\u00e7in getattribute metodu kullan\u0131l\u0131r.Bu metot<br \/>\ndomelement s\u0131n\u0131f\u0131na aittir.<br \/>\n$elem-&gt;getAttributeNode(&#8216;background&#8217;);<br \/>\n6-14<\/p>\n<h3>XML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<\/h3>\n<p>&lt;?php<br \/>\n$dom = new DomDocument();<br \/>\n$dom-&gt;load(&#8216;test2.xml&#8217;);<br \/>\n$body = $dom-&gt;documentElement-&gt;getElementsByTagName(&#8216;body&#8217;)-&gt;item(0);<br \/>\necho $body-&gt;getAttributeNode(&#8216;background&#8217;)-&gt;value. &#8220;n&#8221;;<br \/>\n?&gt;<br \/>\nBelirli<br \/>\nbir<br \/>\nelementinin<br \/>\nattribute<br \/>\nde\u011ferini<br \/>\nelde<br \/>\netmek<br \/>\ni\u00e7in<br \/>\n$tag_ismi=getElementsByTagName(\u2018tag<br \/>\nismi\u2019)-&gt;item(0);<br \/>\nile<br \/>\nelement<br \/>\nelde<br \/>\nedilir.getAttributeNode(\u2018attribute_ismi\u2019)-&gt;value; ile elemente ait olan attribute de\u011feri elde<br \/>\nedilir.<br \/>\nCreating Dom Tree<br \/>\nDOM uzant\u0131s\u0131 XML dosyas\u0131n\u0131 \u00e7\u00f6z\u00fcmlemekten daha fazlas\u0131n\u0131 yapabilir.Bu uzant\u0131 ayr\u0131ca bir<br \/>\nXML dok\u00fcman yaratabilir.Kodun i\u00e7erisinden bir nesne a\u011fac\u0131 olu\u015fturabilirsin ve bunu bir xml<br \/>\ndosyas\u0131 olarak diskte saklayabilirsin.<br \/>\n&lt;?php<br \/>\n$dom = new DomDocument();<br \/>\n$html = $dom-&gt;createElement(&#8216;html&#8217;);<br \/>\n$html-&gt;setAttribute(&#8220;xmlns&#8221;, &#8220;http:\/\/www.w3.org\/1999\/xhtml&#8221;);<br \/>\n$html-&gt;setAttribute(&#8220;xml:lang&#8221;, &#8220;en&#8221;);<br \/>\n$html-&gt;setAttribute(&#8220;lang&#8221;, &#8220;en&#8221;);<br \/>\n$dom-&gt;appendChild($html);<br \/>\n$head = $dom-&gt;createElement(&#8216;head&#8217;);<br \/>\n$html-&gt;appendChild($head);<br \/>\n$title = $dom-&gt;createElement(&#8216;title&#8217;);<br \/>\n$title-&gt;appendChild($dom-&gt;createTextNode(&#8220;XML Example&#8221;));<br \/>\n$head-&gt;appendChild($title);<br \/>\n\/* Create the body element *\/<br \/>\n$body = $dom-&gt;createElement(&#8216;body&#8217;);<br \/>\n$body-&gt;setAttribute(&#8220;backgound&#8221;, &#8220;bg.png&#8221;);<br \/>\n$html-&gt;appendChild($body);<br \/>\n\/* Create the p element *\/<br \/>\n$p = $dom-&gt;createElement(&#8216;p&#8217;);<br \/>\n$body-&gt;appendChild($p);<br \/>\n\/* Add the &#8220;Moved to&#8221; *\/<br \/>\n$text = $dom-&gt;createTextNode(&#8220;Moved to &#8220;);<br \/>\n$p-&gt;appendChild($text);<br \/>\n\/* Add the a *\/<br \/>\n$a = $dom-&gt;createelement(&#8216;a&#8217;);<br \/>\n$a-&gt;setAttribute(&#8220;href&#8221;, &#8220;http:\/\/example.org\/&#8221;);<br \/>\n$a-&gt;appendChild($dom-&gt;createTextNode(&#8220;example.org&#8221;));<br \/>\n$p-&gt;appendChild($a);<br \/>\n\/* Add the &#8220;.&#8221;, br and &#8220;foo &amp; bar&#8221; *\/<br \/>\n$text = $dom-&gt;createTextNode(&#8220;.&#8221;);<br \/>\n$p-&gt;appendChild($text);<br \/>\n$br = $dom-&gt;createElement(&#8216;br&#8217;);<br \/>\n$p-&gt;appendChild($br);<br \/>\n$text = $dom-&gt;createTextNode(&#8220;foo &amp; bar&#8221;);<br \/>\n7-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\n$p-&gt;appendChild($text);<br \/>\necho $dom-&gt;saveXML();<br \/>\n?&gt;<br \/>\nDomDocument s\u0131n\u0131f\u0131 new DomDocument ile yarat\u0131l\u0131r.createElement \u00e7a\u011fr\u0131s\u0131 ile b\u00fct\u00fcn<br \/>\nelementler olu\u015fturulur.<\/p>\n<h3>COMMUNICATING WITH XML<\/h3>\n<p>Uygulamalar bir \u00e7ok yolla internet yolu ile haberle\u015firler.Bunlar\u0131n bir \u00e7o\u011funu zaten<br \/>\nbiliyorsunuz.TCP\/IP ve UDP\/IP kullan\u0131l\u0131r fakat bunlar d\u00fc\u015f\u00fck seviyeli aktar\u0131m<br \/>\nprotokolleridir.Sistemler aras\u0131nda haberle\u015fme zordur. Bunu sebebi sistemlerin haf\u0131zalar\u0131<br \/>\ni\u00e7inde tutuklar\u0131 datay\u0131 farkl\u0131 metotlar ile saklamalar\u0131n\u0131d\u0131r.Ba\u015fka bir nokta ise insanlar\u0131n<br \/>\nplatformlar aras\u0131nda sa\u011flam ve g\u00fcvenilir bir teknoloji istemesidir.Bir \u00e7\u00f6z\u00fcm :RPC(Remote<br \/>\nProcedure Calls)Fakat bu metodu kullanmak kolay de\u011fildir \u00e7\u00fcnk\u00fc Windows sistemlerdeki<br \/>\ntan\u0131mlama Unix sistemlerden fakl\u0131d\u0131r.XML genellikle en iyi \u00e7\u00f6z\u00fcmd\u00fcr.XML farkl\u0131<br \/>\nplatformlar \u00fcst\u00fcndeki uygulamalar\u0131n standart bir format\u0131 kullanarak haberle\u015fmesini olanakl\u0131<br \/>\nk\u0131lar.XML ASCII datad\u0131r.Bu y\u00fczden sistemler aras\u0131ndaki farkl\u0131l\u0131k minimize edilmi\u015ftir.Di\u011fer<br \/>\nbir fark iki sistemin farkl\u0131 tarih g\u00f6sterimleidir : Dec 25 16:58:40 CET 2002, Wed 2002-12-25.XML-RPC<br \/>\nve SOAP XML tabanl\u0131 protkold\u00fcr.SOAP geni\u015f bir protokold\u00fcr ve \u00f6zellikle haberle\u015fme i\u00e7in<br \/>\ntasarlanm\u0131\u015ft\u0131r.<\/p>\n<h4>XML \u2013RPC<\/h4>\n<p>XML-RPC istek ve yan\u0131t protokol\u00fcd\u00fcr.Sunucuya tap\u0131lan her request<br \/>\nbir response<br \/>\nd\u00f6nd\u00fcr\u00fcr.Response ge\u00e7erli bir yan\u0131t olabilece\u011fi bir hata da olabilir.Request ve Response<br \/>\npaketleri bir XML olarak kodlan\u0131r.Paketler i\u00e7indeki de\u011ferler farkl\u0131 imler(&lt;array \/&gt; ,&lt;data<br \/>\n\/&gt;&#8230;) ile kodlan\u0131r. XML-RPC \u015fartnamesinde bir tak\u0131m tipler tan\u0131mlan\u0131r.Veriler bu tiplere<br \/>\nd\u00f6n\u00fc\u015ft\u00fcr\u00fclerek ta\u015f\u0131n\u0131rlar.<br \/>\nXML-RPC Type Description Example Value<br \/>\n&lt;i4 \/&gt; or &lt;int \/&gt; Four-byte signed integer -8123<br \/>\n&lt;boolean \/&gt; 0 (false) or 1 (true) 1<br \/>\n&lt;string \/&gt; ASCII string Hello world<br \/>\n&lt;double \/&gt; Double-precision signed<br \/>\nfloating-point number<br \/>\n91.213<br \/>\n&lt;dateTime.iso8601 \/&gt; Date\/time 200404021T14:08:55<br \/>\n&lt;base64 \/&gt; Base 64-encoded binary eW91IGNhbid0IHJlYWQgdGhpcyE<br \/>\nBir de\u011fer iletildi\u011finde o &lt;value\/&gt; imi i\u00e7ine yaz\u0131l\u0131r. A\u015fa\u011f\u0131daki gibi<br \/>\n&lt;value&gt;&lt;dateTime.iso8601 \/&gt;20021221R14:12:81&lt;\/dateTime.iso8601&gt;&lt;value&gt;<br \/>\nBile\u015fik veriler &lt;array \/&gt; imi ile tan\u0131mlan\u0131rlar.Bu im ile tan\u0131mlanan veriler ili\u015fkisel de\u011fildirler<br \/>\nli\u015fkisel dizleri i\u00e7in &lt;struct \/&gt; imi kullan\u0131l\u0131r.<br \/>\n&lt;array&gt;<br \/>\n&lt;data&gt;<br \/>\n&lt;value&gt;&lt;int&gt;1&lt;\/int&gt;&lt;\/value&gt;<br \/>\n&lt;value&gt;&lt;string&gt;Hello!&lt;\/string&lt;\/value&gt;<br \/>\n8-14<br \/>\n<b>XML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<\/b><br \/>\n&lt;\/data&gt;<br \/>\n&lt;\/array&gt;<br \/>\nG\u00f6r\u00fcnd\u00fc\u011f\u00fc gibi 1 ve Hello! De\u011feri &lt;data \/&gt; imi i\u00e7indedir.Bu im &lt;array \/&gt; iminin \u00e7ocuk<br \/>\nimidir.Bundan ba\u015fka &lt;struct \/&gt; imi de\u011ferler ile ili\u015fkili bir anahtara sahiptir.B\u00f6ylelikle XML<br \/>\ndok\u00fcman\u0131 biraz daha karma\u015f\u0131k bir yap\u0131da g\u00f6z\u00fck\u00fcr.<br \/>\n&lt;struct&gt;<br \/>\n&lt;member&gt;<br \/>\n&lt;name&gt;key-een&lt;\/name&gt;<br \/>\n&lt;value&gt;&lt;int&gt;1&lt;\/int&gt;&lt;\/value&gt;<br \/>\n&lt;\/member&gt;<br \/>\n&lt;member&gt;<br \/>\n&lt;name&gt;key-zwei&lt;\/name&gt;<br \/>\n&lt;value&gt;&lt;int&gt;2&lt;\/int&gt;&lt;\/value&gt;<br \/>\n&lt;\/member&gt;<br \/>\n&lt;\/struct&gt;<br \/>\nRequest ve Response i\u00e7inde datalar farkl\u0131 \u00f6zel imlerin i\u00e7indedirler .<br \/>\nRESPONSE<br \/>\nXML-RPC i\u00e7indeki Request http sunucusu \u00fczerindeki normal POST requestidir. Fakat baz\u0131<br \/>\n\u00f6zel ilavler vard\u0131r.<br \/>\n&lt;?xml version=&#8221;1.0&#8243;?&gt;<br \/>\n&lt;methodCall&gt;<br \/>\n&lt;methodName&gt;hello&lt;\/methodName&gt;<br \/>\n&lt;params&gt;<br \/>\n&lt;param&gt;<br \/>\n&lt;value&gt;&lt;string&gt;Derick&lt;\/string&gt;&lt;\/value&gt;<br \/>\n&lt;\/param&gt;<br \/>\n&lt;\/params&gt;<br \/>\n&lt;\/methodCall&gt;<br \/>\nHer bir RPC request \u00e7a\u011fr\u0131s\u0131 &lt;meodCall \/&gt; iminden meydana gelir.Bunu metot ismi imi<br \/>\ntakip eder bu im uzak metot ismini belirtir. Her bir parametre param elementi i\u00e7ine<br \/>\nge\u00e7irilir.Param imleri params imi ile grupland\u0131r\u0131l\u0131r.Params elementi metot ismini belirten imin<br \/>\nalt imidir.Bu XML-RPC paketi hello uzak fonksiyonunu \u00e7a\u011f\u0131r\u0131r ve Deric parametresini<br \/>\nge\u00e7irir.<\/p>\n<h4>RESPONSE<\/h4>\n<p>Fonksiyon \u00e7a\u011fr\u0131s\u0131ndan sonra bir XML- RPC response \u00e7a\u011f\u0131r\u0131c\u0131 programa d\u00f6nd\u00fcr\u00fcl\u00fcr.Bu<br \/>\nresponse XML olarak kodlanm\u0131\u015ft\u0131r.Burada temel olarak iki tip response ile<br \/>\nkar\u015f\u0131la\u015f\u0131labilir.Normal response veya bir hatay\u0131 bildiren response.<br \/>\nNormal bir response &lt;metodResponse \/&gt; iminin alt imi olan &lt;params \/&gt; ile ay\u0131r<br \/>\nedilebilir.Ba\u015far\u0131l\u0131 bir metodResponse her zaman bir &lt;params \/&gt; alt imine sahiptir.Bu im ise<br \/>\nher zaman bir &lt;param&gt; alt elementine sahiptir.Fonksiyonun i\u00e7inden birden fazla de\u011fer<br \/>\nd\u00f6nd\u00fcremezsin .Fakat bir &lt;array \/&gt; yada &lt;struct \/&gt; imi d\u00f6nd\u00fcrebilirsin.Bir \u00f6nceki b\u00f6l\u00fcm\u00fcn<br \/>\ni\u00e7indeki requeste ait olan sonucu metodResponse g\u00f6sterir.<br \/>\n9-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\n&lt;?xml version=&#8221;1.0&#8243;?&gt;<br \/>\n&lt;methodResponse&gt;<br \/>\n&lt;params&gt;<br \/>\n&lt;param&gt;<br \/>\n&lt;value&gt;&lt;string&gt;Hi Derick!&lt;\/string&gt;&lt;\/value&gt;<br \/>\n&lt;\/param&gt;<br \/>\n&lt;\/params&gt;<br \/>\n&lt;\/methodResponse&gt;<br \/>\nFault<br \/>\nB\u00fct\u00fcn istekler(request) normal bir yan\u0131t(response) d\u00f6nd\u00fcrmezler ve her \u015fey beklenildi\u011fi gibi<br \/>\n\u00e7al\u0131\u015fmayabilir.Her \u015fey istenildi\u011fi gibi \u00e7al\u0131\u015fmad\u0131\u011f\u0131 zaman bir &lt;fault \/&gt; imi d\u00f6nd\u00fcr\u00fcl\u00fcr.Bu im<br \/>\n&lt;params \/&gt; elementinin yerine ge\u00e7er.&lt;fault \/&gt; imi iki \u00fcyeye sahip bir &lt;struct \/&gt; imi i\u00e7erir.Bu<br \/>\n\u00fcyeler faultCode ve faultString imleridir.<br \/>\n&lt;?xml version=&#8221;1.0&#8243;?&gt;<br \/>\n&lt;methodResponse&gt;<br \/>\n&lt;fault&gt;<br \/>\n&lt;value&gt;<br \/>\n&lt;struct&gt;<br \/>\n&lt;member&gt;<br \/>\n&lt;name&gt;faultCode&lt;\/name&gt;<br \/>\n&lt;value&gt;&lt;int&gt;3&lt;\/int&gt;&lt;\/value&gt;<br \/>\n&lt;\/member&gt;<br \/>\n&lt;member&gt;<br \/>\n&lt;name&gt;faultString&lt;\/name&gt;<br \/>\n&lt;value&gt;&lt;string&gt;Incorrect parameters passed to method&lt;<br \/>\nstring&gt;&lt;\/value&gt;<br \/>\n&lt;\/member&gt;<br \/>\n&lt;\/struct&gt;<br \/>\n&lt;\/value&gt;<br \/>\n&lt;\/fault&gt;<br \/>\n&lt;\/methodResponse&gt;<br \/>\nThe Client<br \/>\nBizim lokal makinemizden XML-RPC fonksiyonunu \u00e7a\u011f\u0131rmak i\u00e7in basit bir client script<br \/>\nyazaca\u011f\u0131z.Bu uygulama i\u00e7in XML_RPC Pear S\u0131n\u0131f\u0131 kullanaca\u011f\u0131z.<br \/>\n&lt;?php<br \/>\nrequire_once &#8220;XML\/RPC.php&#8221;;<br \/>\n$client = new XML_RPC_Client(&#8216;\/chap_14\/xmlrpc_example.php&#8217;,&#8217;localhost&#8217;);<br \/>\nlk olarak XML_RPC s\u0131n\u0131f\u0131n\u0131 include edilir ve bir XML_RPC Client nesnesi haz\u0131rlan\u0131r.<br \/>\nNesne Yap\u0131land\u0131r\u0131c\u0131s\u0131(constructor) i\u00e7indeki ilk parametre uzak makine \u00fczerindeki XML_RPC<br \/>\nsunucusunun yoludur. kinci parametre ise makinenin ismidir.<br \/>\n10-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nfunction call_method (&amp;$client, &amp;$msg)<br \/>\n{<br \/>\n\/* Send the request *\/<br \/>\n$p = $client-&gt;send($msg);<br \/>\n\/* Check for an error, and print out the error message if<br \/>\n* necessary *\/<br \/>\nif (PEAR::isError($p)) {<br \/>\necho $p-&gt;getMessage();<br \/>\n}else {<br \/>\n\/* Check if an XML RPC fault was returned, and display<br \/>\n* the faultString *\/<br \/>\nif ($p-&gt;faultCode()) {<br \/>\nprint $p-&gt;faultString();<br \/>\nreturn NULL;<br \/>\n} else {<br \/>\n\/* Return the value upon a valid response *\/<br \/>\n$res = $p-&gt;value();<br \/>\nreturn $res;<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\nBir fonksiyon yazarak devam ediyoruz bu fonksiyon XML_RPC_ CLIENT nesnesini<br \/>\nkullanarak uzak fonksiyonu \u00e7a\u011f\u0131r\u0131r ve bir hata kodu d\u00f6n\u00fcp d\u00f6nmedi\u011fini kontrol eder.<br \/>\n\/* Construct the parameter array *\/<br \/>\n$vals = array (<br \/>\nnew XML_RPC_Value(&#8216;Derick&#8217;, &#8216;string&#8217;)<br \/>\n);<br \/>\n\/* Construct the message with the functionname and<br \/>\n* the parameter array *\/<br \/>\n$msg = new XML_RPC_Message(&#8216;hello&#8217;, $vals);<br \/>\n\/* Send the message and store the result in $res *\/<br \/>\n$res = call_method($client, $msg);<br \/>\n\/* If the result is non-null, decode the XML_RPC_Value into a PHP<br \/>\n* variable and echo it (we assume here that it returns a<br \/>\n* string *\/<br \/>\nif ($res !== NULL) {<br \/>\necho XML_RPC_decode($res).&#8221;n&#8221;;<br \/>\n}<br \/>\nXML_RPC fonksiyonunu daha \u00f6nce tan\u0131mlad\u0131\u011f\u0131z fonksiyon ile \u00e7a\u011f\u0131r\u0131r\u0131z.Bundan \u00f6nce bu<br \/>\nfonksiyona ge\u00e7irilecek olan parametreler d\u00fczenlenir.Parametreler i\u00e7in tipler tan\u0131mlan\u0131r.<br \/>\nFonksiyona parametrelerin tipleri a\u00e7\u0131k yada dolayal\u0131 olarak ge\u00e7iririz.XML_RPC_Message<br \/>\nnesnesinde fonksiyon ad\u0131n\u0131 , fonksiyona ge\u00e7ilecek parametrenin de\u011fer ve tipini belirten<br \/>\nparametreyi belirtiriz.<br \/>\n11-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nXML_RPC_Value nesnesini kullanmak yerine XML_RPC_encode(&lt;value&gt;) \u00e7a\u011fr\u0131s\u0131 ile PHP<br \/>\nde\u011fiken tiplerini en uygun XML-RPC de\u011fi\u015fken tiplerine d\u00f6n\u00fc\u015ft\u00fcren fonksiyonu da<br \/>\nkullanabilir.<br \/>\nA\u015fa\u011f\u0131daki \u00f6rnek iki double de\u011fi\u015fkenini adds fonksiyonuna ge\u00e7er ve bu fonksiyon ise iki<br \/>\nsay\u0131y\u0131 toplay\u0131p bir sonu\u00e7 d\u00f6nd\u00fcr\u00fcr.<br \/>\n\/* Somewhat more example with explicit types and multiple parameters *\/<br \/>\n$vals = array (<br \/>\nXML_RPC_encode(80.9),<br \/>\nXML_RPC_encode(-9.71)<br \/>\n);<br \/>\n$msg = new XML_RPC_Message(&#8216;add&#8217;, $vals);<br \/>\n$res = call_method($client, $msg);<br \/>\necho XML_RPC_decode($res).&#8221;n&#8221;;<br \/>\nXML_RPC_decode fonksiyonu XML_RPC_encode fonksiyonunun tam teri<br \/>\nyapar.XML_RPC tiplerinden uygun PHP tiplerine de\u011fi\u015fkenlerin tiplerini d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<br \/>\ni\u015flem<\/p>\n<h4>RETROSPECTION<\/h4>\n<p>Internet \u00fczerinde bir yerde XML-RPC sunucusu ile kar\u015f\u0131la\u015f\u0131rsan hangi fonksiyonun<br \/>\nkullanabilece\u011fini \u00f6\u011frenmek isteyebilirisin.XML-RPC desteklene fonksiyonlar\u0131 bulur bu size<br \/>\nserver \u00fczerinde fonksiyon \u00e7a\u011fr\u0131s\u0131 i\u00e7in gerek t\u00fcm bilgileri sunar.Retrospection olarak<br \/>\nadland\u0131r\u0131l\u0131r.\u2019system.listMethods\u2019 fonksiyonu ile bir dizi elde edebilirisin.Bu dizi b\u00fct\u00fcn d\u0131\u015f<br \/>\nfonksiyonlar\u0131 i\u00e7erir.<br \/>\n\/* Complex example which shows retrospection *\/<br \/>\n$msg = new XML_RPC_Message(&#8216;system.listMethods&#8217;);<br \/>\n$res = call_method($client, $msg);<br \/>\nforeach (XML_RPC_decode($res) as $item) {<br \/>\n$vals = array (XML_RPC_encode($item));<br \/>\n$msg = new XML_RPC_Message(&#8216;system.methodHelp&#8217;, $vals);<br \/>\n$desc = XML_RPC_decode(call_method($client, $msg));<br \/>\n$msg = new XML_RPC_Message(&#8216;system.methodSignature&#8217;, $vals);<br \/>\n$sigs = XML_RPC_decode(call_method($client, $msg));<br \/>\n$siginfo = &#8221;;<br \/>\nforeach ($sigs[0] as $sig) {<br \/>\n$siginfo .= $sig. &#8221; &#8220;;<br \/>\n}<br \/>\necho &#8220;$itemn&#8221;. wordwrap($desc). &#8220;nt$siginfonn&#8221;;<br \/>\n}<br \/>\n?&gt;<\/p>\n<h3>SERVER<\/h3>\n<p>Server yazmak bir client yazmaktan daha zor de\u011fildir.XML\/RPC.php dosyas\u0131n\u0131 eklemek<br \/>\nyerine, sunucu fonksiyonlar\u0131n\u0131 yerine getiren server.php dosyas\u0131n\u0131 ekleyece\u011fiz.<br \/>\ngetValues: Bu metodu bir dizi d\u00f6nd\u00fcr\u00fcr .Bu dizinin her parametresi fonksiyona ge\u00e7irilir.<br \/>\nXML_RPC_decode:Her eleman XML RPC tipinden PHP tiplerine d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<br \/>\n12-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\nBiz basit\u00e7e bir XML_RPC_Values nenesi d\u00f6nd\u00fcr\u00fcr\u00fcz.Bu nesne string tipinde bir sonu\u00e7 i\u00e7irir.<br \/>\nFonksiyonlar\u0131n d\u0131\u015far\u0131dan elde edilebilir olmas\u0131 i\u00e7in bunlar\u0131 tan\u0131mal\u0131y\u0131z. Fonksiyona ge\u00e7irilen<br \/>\nparametreler fonksiyon ismi fonksiyon a\u00e7\u0131klamas\u0131 bir dizi i\u00e7ine yerle\u015ftirmeliyiz.Her<br \/>\nfonksiyon i\u00e7in ayr\u0131 dizler olu\u015fturulur.Tan\u0131mlanm\u0131\u015f fonksiyonlar\u0131n elde edilebilir olmas\u0131 i\u00e7in<br \/>\nhaz\u0131r XML_RPC s\u0131n\u0131f\u0131n\u0131 kullan\u0131r\u0131z.Bu s\u0131n\u0131f\u0131n kurucusu istekleri(request) ve fonksiyon<br \/>\n\u00e7a\u011fr\u0131lar\u0131n\u0131 \u00e7\u00f6z\u00fcmler.<br \/>\nClient Script Kodlar\u0131:<br \/>\n&lt;?php<br \/>\n\/\/istemci<br \/>\n$path=$_SERVER[&#8216;DOCUMENT_ROOT&#8217;];<br \/>\n$path=$path.&#8221;\/..\/php\/pear\/XML\/RPC.php&#8221;;<br \/>\nrequire $path;<br \/>\n$client=new XML_RPC_Client(&#8216;\/server\/myserver.php&#8217;,&#8217;localhost&#8217;);<br \/>\nfunction call_method(&amp;$client, &amp;$msg)<br \/>\n{<br \/>\n\/* Send the request *\/<br \/>\n$p = $client-&gt;send($msg);<br \/>\n$res = $p-&gt;value();<br \/>\nreturn $res;<br \/>\n}<br \/>\necho &#8220;Siniftan nesne \u00fcretildi ve foksiyon tanimlandi.&#8221;;<br \/>\n$msg = new XML_RPC_Message<br \/>\n(&#8220;hello&#8221;, array(new XML_RPC_Value(&#8216;Wild Bison&#8217;, &#8216;string&#8217;)));<br \/>\n$res = call_method($client, $msg);<br \/>\nif ($res == NULL) {<br \/>\necho &#8220;deger yok&#8221;;<br \/>\n}else echo XML_RPC_decode($res).&#8221;n&#8221;;<br \/>\necho &#8220;&lt;br&gt; iki sayinin toplami:&lt;br&gt;&#8221;;<br \/>\n$vals=array(<br \/>\nXML_RPC_encode(14.0),<br \/>\nXML_RPC_encode(20.2),<br \/>\n);<br \/>\n$msg=new XML_RPC_Message(&#8216;add&#8217;, $vals);<br \/>\n$res=call_method($client,$msg);<br \/>\necho XML_RPC_decode($res);<br \/>\n?&gt;<br \/>\nServer Script Kodlar\u0131:<br \/>\n&lt;?php<br \/>\n$path=$_SERVER[&#8216;DOCUMENT_ROOT&#8217;];<br \/>\n$path=$path.&#8221;\/..\/php\/pear\/XML\/RPC\/Server.php&#8221;;<br \/>\nrequire($path);<br \/>\nfunction hello($args)<br \/>\n{<br \/>\n$val=$args-&gt;getParam(0);<br \/>\n$val=$val-&gt;scalarval();<br \/>\n13-14<br \/>\nXML Dok\u00fcmanlar\u0131n\u0131n PHP ile Kullan\u0131lmas\u0131<br \/>\n$val=&#8221;Hi $val !&#8221;;<br \/>\nreturn new XML_RPC_Response(new XML_RPC_Value($val, &#8216;string&#8217;));<br \/>\n}<br \/>\nfunction add($args)<br \/>\n{<br \/>\n$val0=$args-&gt;getParam(0);<br \/>\n$val0=$val0-&gt;scalarval();<br \/>\n$val1=$args-&gt;getParam(1);<br \/>\n$val1=$val1-&gt;scalarval();<br \/>\nreturn new XML_RPC_Response(new XML_RPC_Value($val0+$val1,&#8217;double&#8217;));<br \/>\n}<br \/>\n$method = array(<br \/>\n&#8216;hello&#8217;=&gt;array( &#8216;function&#8217;=&gt;&#8217;hello&#8217;,<br \/>\n&#8216;signature&#8217;=&gt;array( array($GLOBALS[&#8216;XML_RPC_String&#8217;], $GLOBALS[&#8216;XML_RPC_String&#8217;])),<br \/>\n&#8216;docstring&#8217; =&gt;&#8217;Greets you.&#8217;),<br \/>\n&#8216;add&#8217;=&gt;array( &#8216;function&#8217;=&gt;&#8217;add&#8217;,<br \/>\n&#8216;signature&#8217;=&gt;array(<br \/>\narray($GLOBALS[&#8216;XML_RPC_Double&#8217;],$GLOBALS[&#8216;XML_RPC_Double&#8217;],$GLOBALS[&#8216;XML_RPC_Double&#8217;])),<br \/>\n&#8216;doc string&#8217;=&gt;&#8217;iki sayiyi toplar&#8217;));<br \/>\n$server = new XML_RPC_Server($method);<br \/>\n?&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XML platformlar aras\u0131 bir haberle\u015fme dili olarak daha h\u0131zl\u0131 evrensel bir dildir. Xml baz\u0131lar\u0131na g\u00f6reyse yeni bir web devrimidir.XML bazen dok\u00fcmanlar\u0131 depolamak amac\u0131 ile bir veri taban\u0131 olarak kullan\u0131l\u0131r.Fakat XML nin temel amac\u0131 veri depolamak de\u011fildir.<\/p>\n","protected":false},"author":1,"featured_media":724,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[70,71],"_links":{"self":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/706"}],"collection":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/comments?post=706"}],"version-history":[{"count":2,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/706\/revisions"}],"predecessor-version":[{"id":772,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/posts\/706\/revisions\/772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/media\/724"}],"wp:attachment":[{"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/media?parent=706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/categories?post=706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gncz.net\/index.php\/wp-json\/wp\/v2\/tags?post=706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}