Cómo devolver JSON y XML

Usted tiene que elegir si va a devolver datos JSON o datos XML en tiempo de programación, y que nunca se puede cambiar a menos que reprogramar la salida. El mundo sería un lugar mejor si se pudiera volver tanto XML y JSON, dependiendo de lo que el programa de llamada quiere.

Lograr esta hazaña es una cuestión de aceptar la entrada para el servicio web y proporcionar salida apropiada. La siguiente lista proporciona el código para este servicio web.

? lt; - (! preg_match ('/ json | xml /', $ formato)) phpif (isset ($ _ GET ['formato'])) {$ format = $ _GET ['formato'] si {print "Por favor seleccione un formato: json o xml "-exit-}} else {print" Por favor, elija un formato: json o xml "-exit -} $ friendlyDate = date (" M d, Y ") - $ unixtime = time () - $ meses = date ("M") - $ díadelasemana = date ("l") - $ años = date ("Y") - $ returnData = array ("friendlyDate" => $ friendlyDate "unixtime" => $ unixtime, "monthNum" meses ", díadelasemana" => $ => $ díadelasemana "yearNum" => $ años), si (formato $ == "xml") {$ xml = new DOMDocument () - $ dateInfoElement = $ xml- > createElement ("dateInformation") - foreach ($ returnData como $ clave => $ valor) {$ XMLNode = $xml->createElement($key,$value)-$dateInfoElement->appendChild($xmlNode)-}$xml->appendChild($dateInfoElement)-$output = $ Xml-> saveXML () - $ cabecera = "Content-Type: text / xml" -} else if ($ formato == "json") {$ salida = json_encode ($ returnData) - $ cabecera = "Content- Tipo: application / json "-} cabecera ($ header) $ salida -print ->

Puede ser útil para romper el código abajo. La primera parte del código es para el formato que se enviará de vuelta:

if (isset ($ _ GET ['formato'])) {$ format = $ _GET ['formato'] - si (preg_match ('/ ^ (json | xml) $ /', $ formato)) {print "Por favor, elegir un formato: json o xml "-exit-}} else {print" Por favor, elija un formato: json o xml "-exit-}

Si una OBTENER parámetro de formato está disponible, se establece en el Formato de $ variable. Esta variable se prueba mediante el preg_match () función. Esta función utiliza una expresión regular para comprobar que el formato parámetro se establece en json o xml (en minúsculas). Si no lo es, se muestra un error, como es el caso si el formato parámetro no está establecido en absoluto.

A partir de ahí, el código realiza las mismas funciones que usted ha visto ya, la obtención de la fecha en varios formatos y colocarlos en una matriz. Finalmente, el código establece una condicional basada en el formato solicitado. Si se trata de XML, entonces el código relacionado con XML es executed- si el formato solicitado es JSON, a continuación, se ejecuta el código relacionado con JSON. Por último, la salida se envía al navegador.