Кому может быть полезен данный код? Да любому разработчику, который хочет сделать свой мини api модуль =)
Для начала определим функцию вывода : u_Encode($data, $type, $al)
Обозначения :
$data - массив информации которую требуется вывести
$type - тип вывода (xml или json)
$al - флаг обозначающий что будет в итоге (true - функция вернёт весь текст чтобы потом после остального кода через exit вывести данные. false - в конце функции будут установлены заголовки и данные будут выведены через exit)
Итак для вывода в json нам не потребуется ничего дополнительного. С XML дела обстоят немного иначе. Когда мне потребовалось реализовать такую возможность я нарыл в гугле библиотеку, которая использует стандартные возможности php. Автору этой либы низкий поклон. Итак, её можно найти здесь : Тыц
После того как скачали либу положим её рядом с основным файлом кода. Вот код реализации функции :
Код: Выделить всё
function u_Encode($data, $type, $al){ if ($type == "json") { if ($al == TRUE) return json_encode(array("response"=>$data)); exit(json_encode(array("response"=>$data))); }else{ if (file_exists('Array2XML.php')){ //есть ли библиотека require_once 'Array2XML.php'; $converter = new Array2XML(); $converter->setRootName("response"); $xmlStr = $converter->convert($data); if ($al == TRUE) return $xmlStr; exit($xmlStr); }else{ return FALSE; } }}
Код: Выделить всё
<?phpfunction u_Encode($data, $type, $al){ if ($type == "json") { if ($al == TRUE) return json_encode(array("response"=>$data)); exit(json_encode(array("response"=>$data))); }else{ if (file_exists('Array2XML.php')){ //есть ли библиотека require_once 'Array2XML.php'; $converter = new Array2XML(); $converter->setRootName("response"); $xmlStr = $converter->convert($data); if ($al == TRUE) return $xmlStr; exit($xmlStr); }else{ return FALSE; } }} $first = (isset($_GET['fn']))? $_GET['fn']: "Test";$last = (isset($_GET['ln']))? $_GET['ln']: "Tost";$format = (isset($_GET['format']))? $_GET['format']: "json"; u_Encode(array('first'=>$first, 'last'=>$last), $format, false);?>
Спасибо за внимание =)