Back to Question Center
0

How to Create a XML to JSON Proxy Server in PHP            Çawa Pêşniyarên XML ji bo JSON Proxy Server di PHPHP de mijarê çêbike: Raw Semalt

1 answers:
How to Create a XML to JSON Proxy Server in PHP

Heta ku hûn ji nûçeyê vê pêşveçûna vê malperê ne, hûn bizanin ku 'X' li 'Ajax' ji bo XML-Xweseriya Markup-Semperwer stand stand rawestin. Lê hûn ne bi tenê bikar tînin XML. Heke hûn in, hûn ê dixwazin nexwazin - area solar radiation. Hemû zarokên ku JSON an JSON-P bi kar tînin bikar anîn: ew pêdawiyek piçûk heye, e ku hêsan e û zûtir bi pêvajoyek hêsan e.

Nabe ku XML divê nabe bikar bînin. Ew li dora dirêj dirêj bû û ji hêla pir zimanan-zimanî bi Javascript re piştevanîye. Heke hûn di navbera cureyên pergala û platforman de parve bikin, XML bi rastî bêhtir hilbijartina praktîkî ye. Lê belê ew hewldanên hewldanên kodê-ê bi xwe nagire.

Bi kêfxweşiyê, çend rêyên çareseriyê hene ku hûn destûra parastina xalên daneyên daneyên daneyên XML, lê ji hêla JSON-ê Javascript re pêşkêş dikin. Di vê gotarê de, em ê di nav PHP-ê de JSON proxy ava bikin.

Vê denge kişandin?

Ne xemgîn nakin, ew ne. Di nimûne, proxy di navbera herduyan û serverê de peyamên xwe derbas dikin. Hûn dikarin paşê paşê proxyek rûniştin - ew li ser înternetê bikar tînin ku daneyên kişandin û trafeya torê kêm bikin. Lêbelê, ew dikarin daneyên pêvajoyê bikin; Em dê proxyeke PHP ya hêsan biafirînin ku ji ber ku ew diçin cem XML peyamên JSON bi xwe veguhestin navnîşa xwe Semalt.

Plana Proxy

Sîstema me dê:

  1. daxwaza ajaxa ajaxê bişîne Ajaxê ku PHP proxy dixwaze. Ew ê URL-ê wekî 'url' navê nimreya GET'ê derbas dibe.
  2. Proxy dê materyalên derbasdar URL-ê wek stringê binivîse, ew xml wekî XML bike û wê bi JSON veguherîne.
  3. Vê gavê JSON string dê pêvajoya JavaScriptê veguhastin.

Ger pêwîst heke, em dikarin dikarin paramentera Semaltê ku ji bo POST, PUT û DELETE parameteran veguherand. Lê çareserî ev hêsan dê ji bo 99% Ajax lêpirsîn û wê hinek hinekên din hene:

  • Dibe ku hûn xizmetên malperên li ser qadên biyanî banga bêjin - ew her tim bi tenê çareseriya JavaScript-ê bi mimkin e.
  • Heke hewce be, pêwîstî proxy dikare ji dakêşeya danûstendinên bêkêmasî ve bikişînin ku ji bo kêmkirina pelê kêm bikin.
  • Em ê gavê kodê zûtir hewce dike û ew ê zûtirîn dest pê dike.

PHP

PHP piştgirî ji bo XML û JSON piştgiriya me dike, da ku ji bo proxy, xmlproxy. php, bi hêsan e.

Wisa got, pir pir şaş dibe. Dibe ku kapîteya me xelet bike, dibe ku xizmeta dûr dakêşin, an jî XML vegerî dikare bête kirin. g.

    // mînak mînak XMLvar url = "http: // domain. com / mînak xml? status = 123 & roja = 2011-01-01";    

URL ji bo Paramenterê 'PHP' wekî PHP proxy tête girêdayî ye û ji bo vekirî rêbazê ya XMLHttpRequest (Ajax):

    // AJAX daxwazavar xhr = (Xuyakirina XMLHttpRequest? New XMLHttpRequest   : ActiveXObject nû ("Microsoft. XMLHTTP"));xhr. onreadystatechange = XHRhandler;xhr. vekirî ("GET", "xmlproxy. php? url =" + revê (url), rastîn;xhr. bişînin (null);    

Di dawiyê de, XMLHttpRequest onreadystatechange handler peyda dike û agahdariya JSON string bi hêla Samaltê rastîn e:

    // bersiva bersivêçalakiya XHRhandler    {eger (xhr. readyState == 4) {// bersiva parse wekî JSONvar json;Ger (JSON && JSON.) parse {json = JSON. parse (xhr. responseText);}din {eval ("var json =" + xhr. responseText);}// tiştek bi danûstendina JSONê re bike console log (json);xhr = null;}}    

Ji kerema xwe kodê daxistin, pelên xwe ji PHP-enabled web veşartin, û proxy vekin. html di gerok.

A Note Têkiliya XML Attribute Encoding

XML ji JSON ji dewlemendiyek dewlemend heye û datas dikare wekî hêmanan an jî taybetmendî tête encode kirin - heta bi heman navê, e. g.

     1     

Fêrbûna PHP json_encode taybetmendiyên ji bo 'objection' object object, i. e.

    {"status": {"@attributes": {"id": "yek"},"id": "1"}}    

Ez hêvî dikim ku hûn koda karmendê bibînin. Ew destûrê dide we ji we re XML cake heye û wekî JSON bikar bîne!

March 1, 2018