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 ("H d, Y") - $ unixtime = time () - $ mês = data ("M") - $ dayOfWeek = data ("eu") - $ year = data ("Y") - $ = returnData matriz ("friendlyDate" = Gt; $ FriendlyDate,"unixtime" = Gt; $ Unixtime,"monthNum" = Gt; $ Mês,"dia da semana" = Gt; $ DayOfWeek,"yearNum" = Gt; $ Year) -se ($ format == "xml") {$ Xml = novo DOMDocument () - $ = $ dateInfoElement xml-gt; createElement ("dateInformation") -foreach ($ returnData como chave $ = gt; $ value) {$ xmlnode = $ xml-gt; createElement ($ chave, $ value) - $ dateInfoElement-gt; appendChild ($ xmlnode) -} $ xml-gt; appendChild ($ dateInfoElement) - $ = $ saída xml-gt; saveXML () - $ = cabeçalho "Content-Type: text / xml"-} else if ($ formato == "json") {$ Output = json_encode ($ returnData) - $ header = "Content-Type: application / json"-} cabeçalho (header $) -print $ output- gt;?

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, escolha um formato: json ou xml"-exit-}} else {print "Por favor, escolha um formato: json ou xml"-Saída-}

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, será exibido 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 colocando-os em uma matriz. Finalmente, o código estabelece uma condicional com base no formato solicitado. Se for XML, então o código relacionado XML-é executed- se o formato solicitado é JSON, então o código relacionado com o JSON é executado. Finalmente, a saída é enviada para o navegador.


Publicações relacionadas