Como retornar JSON e XML

Você precisa escolher se vai retornar dados JSON ou dados XML em tempo de programação, e que nunca pode mudar a menos que você reprogramar a saída. O mundo seria um lugar melhor se você pudesse voltar XML e JSON, dependendo do que o programa de chamada quer.

Realizar este feito é uma questão de aceitar a entrada para o serviço web e, em seguida, fornecendo saída apropriada. A listagem a seguir fornece o código para este serviço web.

? Lt; - (! Preg_match ( '/ json | xml /', $ formato)) phpif (isset ($ _ GET [ 'formato'])) {$ format = $ _GET [ 'formato'], se {print "Por favor escolha um formato: json ou xml "-exit-}} else {print" Por favor, escolha um formato: json ou xml "-exit -} $ friendlyDate = data (" M d, Y ") - $ Unixtime = time () - $ month = data ( "M") - $ dayOfWeek = data ( "l") - $ year = data ( "Y") - $ returnData = array ( "friendlyDate" => $ friendlyDate, "Unixtime" => $ Unixtime, "monthNum" => $ mês ", dayOfWeek" => $ dayOfWeek, "yearNum" => $ year) -se ($ format == "xml") {$ xml = new DOMDocument () - $ dateInfoElement = $ XML- > createElement ( "dateInformation") - foreach ($ returnData quanto $ key => $ value) {$ xmlnode = $xml->createElement($key,$value)-$dateInfoElement->appendChild($xmlNode)-}$xml->appendChild($dateInfoElement)-$output = $ XML-> saveXML () - $ header = "Content-Type: text / xml" -} else if ($ formato == "json") {$ output = json_encode ($ returnData) - $ header = "Content tipo: application / json "-} cabeçalho (header $) $ output -print ->

Pode ser útil para quebrar este código para baixo. A primeira parte do código é para o formato a ser enviado de volta:

if (isset ($ _ GET [ 'formato'])) {$ format = $ _GET [ 'formato'] - if (preg_match ( '/ ^ (JSON | xml) $ / ", $ format)) {print" Por favor, escolher um formato: json ou xml "-exit-}} else {print" Por favor, escolha um formato: json ou xml "-exit-}

Se um OBTER parâmetro de formato está disponível, ele é definido como o $ format variável. Esta variável é testado usando o preg_match () função. Esta função usa uma expressão regular para verificar se o formato parâmetro é definido como json ou xml (Letras minúsculas). Se não for, é apresentado um erro, como é o caso se o formato parâmetro não está definido em tudo.

A partir daí, o código executa as mesmas funções que você já viu, obtendo a data em vários formatos e colocá-los em uma matriz. Finalmente, o código define-se uma condicional com base no formato solicitado. Se for XML, então o código relacionado XML-é executed- se o formato solicitado é JSON, em seguida, o código relacionado com o JSON é executado. Finalmente, a saída é enviada para o navegador.

menu