raheelarifkhans / json-to-html-converter
This PHP function takes a JSON object and converts it into a structured HTML detail page. The function handles nested objects and arrays, displaying them appropriately in a user-friendly format.
dev-master
2024-06-29 12:21 UTC
This package is auto-updated.
Last update: 2025-06-29 02:09:30 UTC
README
This PHP function takes a JSON object and converts it into a structured HTML detail page. The function handles nested objects and arrays, displaying them appropriately in a user-friendly format.
Features
- Converts JSON to HTML
- Handles nested objects and arrays
- Displays boolean values as 'Yes' or 'No'
- Escapes HTML characters for security
Example
Input JSON
{ "name": "Device", "domain": "Domain", "behaviorBlockerEnabled": true, "surfProtectionEnabled": false, "fileGuardEnabled": true, "protectionStatus": "Offline", "fixNowStatus": "Unknown", "malwareObjectsCount": 0, "settings": { "windowsUpdateState": "Undefined", "firewallState": { "value": "Undefined", "original": "Undefined" }, "firewallActualState": "On", "rdpState": { "value": "On", "original": "On" }, "rdpActualState": "On", "firewallName": "Windows", "networkLockdown": { "value": { "value": true, "original": true }, "enabledOnGroupLevel": true, "groupGuid": "7cc8149d-b861-48ee-a0a0-50d19ba030f7", "groupName": "New computers" }, "trafficRelay": true, "note": "Notes" }, "updateStatus": { "lastUpdate": 60, "updateStatus": "Updating", "updateStatusMessage": "95%", "online": "Online" }, "policyEdits": 0, "isRelayUsed": false, "relayStatus": "Undefined", "isProxyUsed": false, "protectionPolicyEdits": 0, "architecture": "64", "cores": 4, "browserSecurity": "Chrome", "product": "EES", "version": "2020.11", "updateFeed": "stable", "relaySaved": 0, "relaySavedUnit": "Kilobytes", "criticalEventsCount": 0, "disksCount": 0, "disks": [ { "letter": "C", "total": 2, "free": 0 } ], "networkAdapters": [ { "name": "Ethernet1", "iPv4Addresses": [ "192.168.0.1" ], "iPv6Addresses": [] } ] }
Output HTML
<div class="bg-white rounded-lg shadow-lg p-6 w-full max-w-xl">
<h2 class="text-xl font-semibold mb-4">Device Details</h2>
<p class="mb-4"><strong>Name:</strong> Device</p>
<p class="mb-4"><strong>Domain:</strong> Domain</p>
<p class="mb-4"><strong>Behavior Blocker Enabled:</strong> Yes</p>
<p class="mb-4"><strong>Surf Protection Enabled:</strong> No</p>
<p class="mb-4"><strong>File Guard Enabled:</strong> Yes</p>
<p class="mb-4"><strong>Protection Status:</strong> Offline</p>
<p class="mb-4"><strong>Fix Now Status:</strong> Unknown</p>
<p class="mb-4"><strong>Malware Objects Count:</strong> 0</p>
<div class="mb-4"><strong>Settings:</strong></div>
<p class="mb-4"><strong>Windows Update State:</strong> Undefined</p>
<div class="mb-4"><strong>Firewall State:</strong></div>
<p class="mb-4"><strong>Value:</strong> Undefined</p>
<p class="mb-4"><strong>Original:</strong> Undefined</p>
<p class="mb-4"><strong>Firewall Actual State:</strong> On</p>
<div class="mb-4"><strong>RDP State:</strong></div>
<p class="mb-4"><strong>Value:</strong> On</p>
<p class="mb-4"><strong>Original:</strong> On</p>
<p class="mb-4"><strong>RDP Actual State:</strong> On</p>
<p class="mb-4"><strong>Firewall Name:</strong> Windows</p>
<div class="mb-4"><strong>Network Lockdown:</strong></div>
<p class="mb-4"><strong>Value:</strong></p>
<div class="mb-4"><strong>Value:</strong> Yes</div>
<div class="mb-4"><strong>Original:</strong> Yes</div>
<p class="mb-4"><strong>Enabled On Group Level:</strong> Yes</p>
<p class="mb-4"><strong>Group Guid:</strong> 7cc8149d-b861-48ee-a0a0-50d19ba030f7</p>
<p class="mb-4"><strong>Group Name:</strong> New computers</p>
<p class="mb-4"><strong>Traffic Relay:</strong> Yes</p>
<p class="mb-4"><strong>Note:</strong> Notes</p>
<div class="mb-4"><strong>Update Status:</strong></div>
<p class="mb-4"><strong>Last Update:</strong> 60</p>
<p class="mb-4"><strong>Update Status:</strong> Updating</p>
<p class="mb-4"><strong>Update Status Message:</strong> 95%</p>
<p class="mb-4"><strong>Online:</strong> Online</p>
<p class="mb-4"><strong>Policy Edits:</strong> 0</p>
<p class="mb-4"><strong>Is Relay Used:</strong> No</p>
<p class="mb-4"><strong>Relay Status:</strong> Undefined</p>
<p class="mb-4"><strong>Is Proxy Used:</strong> No</p>
<p class="mb-4"><strong>Protection Policy Edits:</strong> 0</p>
<p class="mb-4"><strong>Architecture:</strong> 64</p>
<p class="mb-4"><strong>Cores:</strong> 4</p>
<p class="mb-4"><strong>Browser Security:</strong> Chrome</p>
<p class="mb-4"><strong>Product:</strong> EES</p>
<p class="mb-4"><strong>Version:</strong> 2020.11</p>
<p class="mb-4"><strong>Update Feed:</strong> stable</p>
<p class="mb-4"><strong>Relay Saved:</strong> 0</p>
<p class="mb-4"><strong>Relay Saved Unit:</strong> Kilobytes</p>
<p class="mb-4"><strong>Critical Events Count:</strong> 0</p>
<p class="mb-4"><strong>Disks Count:</strong> 0</p>
<div class="mb-4"><strong>Disks:</strong></div>
<ul>
<li><p class="mb-4"><strong>Letter:</strong> C</p>
<p class="mb-4"><strong>Total:</strong> 2</p>
<p class="mb-4"><strong>Free:</strong> 0</p>
</li>
</ul>
<div class="mb-4"><strong>Network Adapters:</strong></div>
<ul>
<li><p class="mb-4"><strong>Name:</strong> Ethernet1</p>
<div class="mb-4"><strong>IPv4 Addresses:</strong></div>
<ul>
<li><p class="mb-4"><strong></strong> 192.168.0.1</p></li>
</ul>
<div class="mb-4"><strong>IPv6 Addresses:</strong></div>
<ul>
<li><p class="mb-4"><strong></strong> </p></li>
</ul>
</li>
</ul>
</div>
Usage
Installation
- You can install the package via Composer. Run the following command:
composer require raheelarifkhans/json-to-html-converter
- Include the Composer autoloader in your PHP file:
require 'vendor/autoload.php';
- Use the JsonToHtmlConverter class in your code:
use RaheelArifKhans\JsonToHtmlConverter;
- Convert your JSON data to HTML using the generateHtmlFromJson function:
$json = '{
"name": "Device",
"domain": "Domain"
}';
$html = JsonToHtmlConverter::generateHtmlFromJson(json_decode($json, true));
echo $html;
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
- Fork the repository.
- Create your feature branch (git checkout -b feature/AmazingFeature).
- Commit your changes (git commit -m 'Add some AmazingFeature').
- Push to the branch (git push origin feature/AmazingFeature).
- Open a Pull Request.
Contact
Raheel Khan - raheelk62@gmail.com
- Github: https://github.com/raheelarifkhans
- LinkedIn: https://linkedin.com/in/raheelarifkhans