Конвертирование XML в JSON на PHP 8
Доброго времени суток! В данной статье мы рассмотрим с Вами, как можно создать простой сервис, единственной задачей которого будет конвертирование xml файла в json. Сервис будет принимать ссылку на XML файл и возвращать преобразованный ответ в формате JSON. Где это может пригодиться? Например, с помощью данного простого сервиса я сделал преобразование RSS ленты, которая представляет из себя XML, в JSON формат на сервере, ответ с которого потом передавался в Android приложение и выводился пользователю в интерфейсе.
Итак, приступим к коду. Основной функционал сервиса будет находиться в файле functions.php.
// отформатированный вывод json
function util_json(mixed $value): bool|string
return json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
>
// CORS заголовки, чтобы можно было запрашивать сервис посредством fetch в браузере
function cors(): void
header(‘Access-Control-Allow-Origin: *’);
header(‘Access-Control-Allow-Methods: GET, POST’);
header(‘Access-Control-Max-Age: 1000’);
header(‘Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With’);
header(‘Content-Type: application/json’);
>
// отформатированный код ответа при ошибке
function error_response(string $message, int $code = 501): bool|string
$responseMessage = [‘code’ => $code, ‘error’ => $message];
return util_json($responseMessage);
>
/**
* Сам конвертер — центральный элемент сервиса
*
* @throws Exception
*/
function convertXml2Json(string $xmlUrl): bool|string
// пытается загрузить ресурс по ссылке и преобразовать
$element = @simplexml_load_file($xmlUrl, options: LIBXML_NOCDATA);
// если ссылка не может быть загружена или возникла какая-то другая проблема — бросаем исключение
if(!$element) throw new Exception(‘Unable to parse xml resource from ‘ . $xmlUrl);
>
// форматируем в json
return util_json($element->channel);
>
// обработчик запроса от клиента
function process_request(array $request_data, string $apiKey): string|bool
$response_text = »;
try // если запрос содержит ключ авторизации и он равен нашему ключу $apiKey
if($request_data[‘key’] === $apiKey)
// если в запросе передан правильный url ресурса
if(!empty($request_data[‘resource’]) && (filter_var($request_data[‘resource’], FILTER_VALIDATE_URL) !== false))
// выполняем конвертацию
$response_text = convertXml2Json($request_data[‘resource’]);
>
else
$response_text = error_response(‘Invalid url of xml resource’);
>
>
else
$response_text = error_response(‘Wrong access key’);
>
>
catch (Exception $e) $response_text = error_response($e->getMessage());
>
Файл index.php
$url = «https://news.yandex.ru/internet.rss»;
$apiKey = «API_KEY»;
// данный запроса: resource -> url, key -> key
$mockGET = [‘resource’ => $_GET[‘url’] ?: $url, ‘key’ => $_GET[‘key’]];
// отправляем заголовки
cors();
// и результат
print process_request($mockGET, $apiKey);
Протестировать на локальном ПК можно так:
php -S localhost:8080 index.php
Открываете в браузере адрес:
В результате получим JSON представление XML ресурса. Дальше этот сервис можно разместить на хостинге, например, и использовать его в других приложениях.
Создано 17.05.2022 08:42:45
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
Php xml to json converter
- Different ways to write a PHP code
- How to write comments in PHP ?
- Introduction to Codeignitor (PHP)
- How to echo HTML in PHP ?
- Error handling in PHP
- How to show All Errors in PHP ?
- How to Start and Stop a Timer in PHP ?
- How to create default function parameter in PHP?
- How to check if mod_rewrite is enabled in PHP ?
- Web Scraping in PHP Using Simple HTML DOM Parser
- How to pass form variables from one page to other page in PHP ?
- How to display logged in user information in PHP ?
- How to find out where a function is defined using PHP ?
- How to Get $_POST from multiple check-boxes ?
- How to Secure hash and salt for PHP passwords ?
- Program to Insert new item in array on any position in PHP
- PHP append one array to another
- How to delete an Element From an Array in PHP ?
- How to print all the values of an array in PHP ?
- How to perform Array Delete by Value Not Key in PHP ?
- Removing Array Element and Re-Indexing in PHP
- How to count all array elements in PHP ?
- How to insert an item at the beginning of an array in PHP ?
- PHP Check if two arrays contain same elements
- Merge two arrays keeping original keys in PHP
- PHP program to find the maximum and the minimum in array
- How to check a key exists in an array in PHP ?
- PHP | Second most frequent element in an array
- Sort array of objects by object fields in PHP
- PHP | Sort array of strings in natural and standard orders
- How to pass PHP Variables by reference ?
- How to format Phone Numbers in PHP ?
- How to use php serialize() and unserialize() Function
- Implementing callback in PHP
- PHP | Merging two or more arrays using array_merge()
- PHP program to print an arithmetic progression series using inbuilt functions
- How to prevent SQL Injection in PHP ?
- How to extract the user name from the email ID using PHP ?
- How to count rows in MySQL table in PHP ?
- How to parse a CSV File in PHP ?
- How to generate simple random password from a given string using PHP ?
- How to upload images in MySQL using PHP PDO ?
- How to check foreach Loop Key Value in PHP ?
- How to properly Format a Number With Leading Zeros in PHP ?
- How to get a File Extension in PHP ?
- How to get the current Date and Time in PHP ?
- PHP program to change date format
- How to convert DateTime to String using PHP ?
- How to get Time Difference in Minutes in PHP ?
- Return all dates between two dates in an array in PHP
- Sort an array of dates in PHP
- How to get the time of the last modification of the current page in PHP?
- How to convert a Date into Timestamp using PHP ?
- How to add 24 hours to a unix timestamp in php?
- Sort a multidimensional array by date element in PHP
- Convert timestamp to readable date/time in PHP
- PHP | Number of week days between two dates
- PHP | Converting string to Date and DateTime
- How to get last day of a month from date in PHP ?
- PHP | Change strings in an array to uppercase
- How to convert first character of all the words uppercase using PHP ?
- How to get the last character of a string in PHP ?
- How to convert uppercase string to lowercase using PHP ?
- How to extract Numbers From a String in PHP ?
- How to replace String in PHP ?
- How to Encrypt and Decrypt a PHP String ?
- How to display string values within a table using PHP ?
- How to write Multi-Line Strings in PHP ?
- How to check if a String Contains a Substring in PHP ?
- How to append a string in PHP ?
- How to remove white spaces only beginning/end of a string using PHP ?
- How to Remove Special Character from String in PHP ?
- How to create a string by joining the array elements using PHP ?
- How to prepend a string in PHP ?
PHP XML to JSON
In order to convert XML to JSON in PHP, we have a function called json_encode function, and this is an inbuilt function in PHP and the procedure to convert XML to JSON is first getting the contents of the XML file by making use of the function _file\_get\_contents()_to which the URL of the XML file is passed as a parameter, and then the returns, tabs and the newlines are removed, and then the double quotes are replaced by the single quotes, and then the trailing and leading spaces are trimmed to make sure the XML is parsed properly by a simple XML function, and then the final conversion happens using json_encode function.
Web development, programming languages, Software testing & others
Syntax to declare Zlib module in PHP:
json_encode(URL_to_the_XML_file)
Where URL_to_the_XML_file is the URL of the XML file, which is to be converted to JSON.
Steps to Convert XML to JSON in PHP
- Getting the XML file contents by using the function file_get_contents() to which the URL of the XML file is passed as a parameter.
- Removing the tabs, returns and the newlines.
- The single quotes replace the double-quotes.
- The trailing and leading spaces are trimmed to make sure the XML is parsed properly by a simple XML function.
- The simplexml_load_string() function is called to load the contents of the XML file.
- The final conversion of XML to JSON is done by calling the json_encode() function.
Examples of PHP XML to JSON
Given below are the examples of PHP XML to JSON:
Example #1
PHP program to illustrate the conversion of XML to JSON where we provide the URL to the XML file as a parameter to the json_encode function to convert the contents of the XML file to JSON.
In the above program, we get the XML file contents by making use of the function file_get_contents(), to which the URL of the XML file is passed as a parameter. Then the the tabs, returns and the newlines are removed. Then the double quotes are replaced by the single quotes. Then the trailing and leading spaces are trimmed to make sure the XML is parsed properly by a simple XML function. Then the simplexml_load_string() function is called to load the contents of the XML file. Then the final conversion of XML to JSON is done by calling the json_encode() function.
Example #2
PHP program to illustrate the conversion of XML to JSON where we provide the URL to the XML file as a parameter to the json_encode function to convert the contents of the XML file to JSON.
In the above program, we get the XML file contents by making use of the function file_get_contents(), to which the URL of the XML file is passed as a parameter. Then the the tabs, returns and the newlines are removed. Then the double quotes are replaced by the single quotes. Then the trailing and leading spaces are trimmed to make sure the XML is parsed properly by a simple XML function. Then the simplexml_load_string() function is called to load the contents of the XML file. Then the final conversion of XML to JSON is done by calling the json_encode() function.
Example #3
PHP program to illustrate the conversion of XML to JSON where we provide the URL to the XML file as a parameter to the json_encode function to convert the contents of the XML file to JSON.
In the above program, we get the XML file contents by making use of the function file_get_contents(), to which the URL of the XML file is passed as a parameter. Then the the tabs, returns and the newlines are removed. Then the double quotes are replaced by the single quotes. Then the trailing and leading spaces are trimmed to make sure the XML is parsed properly by a simple XML function. Then the simplexml_load_string() function is called to load the contents of the XML file. Then the final conversion of XML to JSON is done by calling the json_encode() function.
Recommended Articles
This is a guide to PHP XML to JSON. Here we discuss the introduction, steps to convert XML to JSON in PHP and examples, respectively. You may also have a look at the following articles to learn more –
25+ Hours of HD Videos
5 Courses
6 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5
92+ Hours of HD Videos
22 Courses
2 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5
83+ Hours of HD Videos
16 Courses
1 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5
PHP Course Bundle — 8 Courses in 1 | 3 Mock Tests
43+ Hours of HD Videos
8 Courses
3 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5