<?php
// xml_to_html.php
// RJM Programming
// September, 2015
// Via http://www.w3schools.com/php/php_ref_simplexml.asp ... thanks


function server_remote_addr() {
    $rma = $_SERVER['REMOTE_ADDR'];
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    // you can add different browsers with the same way ..
    if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
            $rma = '000000'.$rma;
    elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
            $rma = '00000'.$rma;
    elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
            $rma = '0000'.$rma;
    elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
            $rma = '000'.$rma;
    elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
            $rma = '00'.$rma;
    elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
            $rma = '0'.$rma;
    return str_replace(":", "_", $rma);
}

if (isset($_GET['inxml']) && file_exists("xml_to_html.html")) {
  header("Location: ./xml_to_html.html?inxml=" . $_GET['inxml']);
  exit;
} else if (isset($_POST['inxml']) && file_exists("xml_to_html.html")) {
  $pinxml=$_POST['inxml'];
  $xbits=explode("<?xml", $pinxml);
  if (sizeof($xbits) > 1) {
   $prexbits=explode("?>", $xbits[1]);
   $pinxml=str_replace("<?xml" . $prexbits[0] . "?>", "", $pinxml);
  }
  $okhtml=@file_get_contents("xml_to_html.html");
  $bits=explode('var preinxml="', $okhtml);
  if (sizeof($bits) > 1) {
    $subbits=explode('"', $bits[1]);
    $newhtml=str_replace($subbits[0], str_replace("\n", " ", str_replace("\r", " ", str_replace('"', '\"', str_replace("<","&lt;",str_replace(">","&gt;",urldecode($pinxml)))))), $okhtml);
    file_put_contents("xmltohtml" . server_remote_addr() . ".html", $newhtml);
    header("Location: xmltohtml" . server_remote_addr() . ".html");
    exit;
  } else {
    header("Location: ./xml_to_html.html?inxml=" . $_POST['inxml']);
   exit;
  }
}

$inxml="&lt;messages&gt;  &lt;note id='501'&gt;    &lt;to&gt;Tove&lt;/to&gt;    &lt;from&gt;Jani&lt;/from&gt;    &lt;heading&gt;Reminder&lt;/heading&gt;    &lt;body&gt;Don't forget me this weekend!&lt;/body&gt;  &lt;/note&gt;  &lt;note id='502'&gt;    &lt;to&gt;Jani&lt;/to&gt;    &lt;from&gt;Tove&lt;/from&gt;    &lt;heading&gt;Re: Reminder&lt;/heading&gt;    &lt;body&gt;I will not&lt;/body&gt;  &lt;/note&gt;&lt;/messages&gt;";
file_put_contents("messages.xml", str_replace("&lt;", "<", str_replace("&gt;", ">", $inxml)));
$xml=simplexml_load_file("messages.xml") or die("Error: Cannot create object");
$outhtml='<DIV id="messages1" data-type="messages/note"></DIV>';
foreach($xml->children() as $note) {
    $outhtml=str_replace('</DIV>', ' messages/note <div data-subtype="note" id="' . $note['id'] . '"> data-to="' . $note->to . '" data-from="' . $note->from . '" data-heading="' . $note->heading . '" data-body="' . $note->body . '"  </div></DIV>', $outhtml);
}
$outhtml=str_replace("DIV", "div", $outhtml);

$thehtml="<!doctype html>
<html>
<head>
<link href='//www.rjmprogramming.com.au/PHP/emboss_h1.css' rel='stylesheet' type='text/css'>
<title>XML to HTML - PHP via simplexml - RJM Programming - September, 2015 - via http://www.w3schools.com/xml/xml_attributes.asp</title>
</head>
<body style='background-color:teal;'>
<h1 align='center'>XML to HTML - PHP via simplexml - RJM Programming - September, 2015</h1>
<div align='center'><table><tr><th>XML</th><th> <a target=_blank title='Where the XML on left came from ... http://www.w3schools.com/xml/xml_attributes.asp ... thanks' href='http://www.w3schools.com/xml/xml_attributes.asp'>----</a>&gt; Display <a target=_blank title='PHP simplexml functionality information from w3schools' href='http://www.w3schools.com/php/php_ref_simplexml.asp'>----</a>&gt; </th><th>HTML<font size=0>5</font></th></tr><tr><td><textarea style='background-color:silver;' rows=10 cols=80>" . str_replace("&lt;", "<", str_replace("&gt;", ">", $inxml)) . "</textarea></td><td> ----&gt; " . $outhtml . " ----&gt; </td><td><textarea style='background-color:lightblue;' rows=10 cols=80>" . str_replace("<","&lt;", str_replace(">","&gt;", $outhtml)) . "</textarea></td></tr></table></div>" . "
</body>
</html>
";

echo $thehtml;
?> 