{"id":47067,"date":"2019-11-04T03:01:02","date_gmt":"2019-11-03T17:01:02","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=47067"},"modified":"2019-11-04T10:41:18","modified_gmt":"2019-11-04T00:41:18","slug":"pdf-slideshow-and-poll-form-creation-inline-email-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-poll-form-creation-inline-email-tutorial\/","title":{"rendered":"PDF Slideshow and Poll Form Creation Inline Email Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PDF Slideshow and Poll Form Creation Inline Email Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/poll_good.jpg\" title=\"PDF Slideshow and Poll Form Creation Inline Email Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">PDF Slideshow and Poll Form Creation Inline Email Tutorial<\/p><\/div>\n<p>Another functionality dovetailing with the recent <a title='PDF Slideshow and Form Creation Helper Inline Email Tutorial' href='#pdfsfchiet'>PDF Slideshow and Form Creation Helper Inline Email Tutorial<\/a>&#8216;s use of Email Inline HTML (mimetype text\/html), we figure, is &#8230;<\/p>\n<p><code><br \/>\nOnline Polling via Email<br \/>\n<\/code><\/p>\n<p> &#8230; being that &#8220;one step easier than downloading&#8221; method to try to garner someone&#8217;s opinion online.  Looks wise, it just involves one more button to our form, and behind the scenes, one hidden HTML textarea element.  Leave this too open-ended, and you&#8217;ll end up with a lot of spam answers, alas.   So we turned our mind to deconstructing HTML from the recent <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/html-oninvalid-event-form-validation-primer-tutorial\/' title='HTML Oninvalid Event Form Validation Primer Tutorial'>HTML Oninvalid Event Form Validation Primer Tutorial<\/a>, paring it back and rearranging code that was in the head section to be in the body section.   Not too hard, really.<\/p>\n<p>What we did learn, doing this, was how to push the Exim Mail Server functionality up at the rjmprogramming.com.au web server deliver an individual email message in the queue ahead of the 30 build up Exim waits for, in that queue, before delivering emails, in the normal case of events.  You can see this &#8230;<\/p>\n<p><code><br \/>\n# cd \/var\/log<br \/>\n# # Do the work in the browser to set up and send the email ... then ...<br \/>\n# tail exim_mainlog | grep 'rmetcalfe15@gmail.com'<br \/>\n# # copy the last record's third word (after two timestamp related words) into {buffer}<br \/>\n# exim -M [paste {buffer} here]<br \/>\n#<br \/>\n<\/code><\/p>\n<p> &#8230; play out at the bottom of today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/poll_good.jpg\">tutorial picture<\/a>.<\/p>\n<p>So yet again, we have <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php----GETME\" title=\"form_creator.php\">form_creator.php<\/a>&#8216;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\" title=\"Click picture\">live run<\/a> for you to try some Poll Email (Inline) HTML ideas.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-poll-form-creation-inline-email-tutorial\/'>PDF Slideshow and Poll Form Creation Inline Email Tutorial<\/a>.<\/p-->\n<hr>\n<p id='pdfsfchiet'>Previous relevant <a target=_blank title='PDF Slideshow and Form Creation Helper Inline Email Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-form-creation-helper-inline-email-tutorial\/'>PDF Slideshow and Form Creation Helper Inline Email Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PDF Slideshow and Form Creation Helper Inline Email Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator_emailinline.jpg\" title=\"PDF Slideshow and Form Creation Helper Inline Email Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">PDF Slideshow and Form Creation Helper Inline Email Tutorial<\/p><\/div>\n<p>Up to now, here at RJM Programming with this blog, we&#8217;ve resisted talking much about &#8230;<\/p>\n<ul>\n<li>emails containing HTML Inline (ie. those with a mime type of text\/html) &#8230; in favour of (talking more about) &#8230;<\/li>\n<li>emails containing HTML Attachments (ie. have a mime type of text\/plain with the body of the email and mime type application\/octet for attachments)<\/li>\n<\/ul>\n<p> &#8230; and yet, the former has the advantage that you can get an online task done without a download operation, necessarily.  So why the bias to more online work <font size=1>(does not compute)<\/font>?  Well, it is to do with the restrictions the email client applications put on the types of data accepted with HTML Inline text\/html data, that is not as stringent as that imposed on HTML Attachments that would have to be downloaded onto your local system to have any impact and so is one step removed from security issues (but still a consideration, we hope you&#8217;d agree).  It depends a lot on <a target=_blank title='HTML Emailinformation fromWikipedia, thanks' href='https:\/\/en.wikipedia.org\/wiki\/HTML_email'>the email client<\/a> involved, but suspects to not accepting (or stripping) your HTML data are &#8230;<\/p>\n<ul>\n<li>no Javascript in document.head nor document.body (with onload event logic and other inline event logics, even)<\/li>\n<li>sometimes no document.head will be accepted (eg. <a target=_blank title='Gmail' href='https:\/\/gmail.com'>Gmail<\/a>)<\/li>\n<\/ul>\n<p> &#8230; and this makes what is useful as Email (Inline) HTML as a very small subset of HTML(\/CSS\/Javascript) functionality <font size=1>(pretty much just HTML design and inline CSS styling)<\/font>.  Nevertheless, for today&#8217;s work, after the leads of yesterday&#8217;s <a title='PDF Slideshow and Form Creation Helper Preview Tutorial' href='#pdfsfchpt'>PDF Slideshow and Form Creation Helper Preview Tutorial<\/a>, especially its revisit to mapping relative URLs to absolute URLs (ie. ones starting with &#8220;http:&#8221; or &#8220;https:&#8221;) &#8230;<\/p>\n<p><code><br \/>\n      var url=document.URL.split('#')[0].split('?')[0];<br \/>\n<br \/>\n function relative_to_absolute(inth) {<br \/>\n    var huhs, posthuhs, ii, m, delimis=\\\" \\\";<br \/>\n    var uubits=url.split(\\\"?\\\");<br \/>\n<br \/>\n    if (url == \\\"\\\") return inth;<br \/>\n<br \/>\n    if (uubits[0].indexOf(\\\"\/\\\") != -1) {<br \/>\n      var uuubits=uubits[0].split(\\\"\/\\\");<br \/>\n      if (uuubits[eval(uuubits.length - 1)] != \\\"\\\") {<br \/>\n        if (uuubits[eval(uuubits.length - 1)].indexOf(\\\".\\\") != -1) {<br \/>\n          uubits[0] = uubits[0].replace(\\\"\/\\\" + uuubits[eval(uuubits.length - 1)], \\\"\/\\\");<br \/>\n        } else {<br \/>\n          uubits[0] += \\\"\/\\\";<br \/>\n        }<br \/>\n      }<br \/>\n    }<br \/>\n<br \/>\n    var uudirname=uubits[0];<br \/>\n    var outth = inth;<br \/>\n    var ideas = new Array(\\\" href='\\\", ' href=\\\"', \\\" Href='\\\", ' Href=\\\"', \\\" HREF='\\\", ' HREF=\\\"', \\\" href=\\\", \\\" Href=\\\", \\\" HREF=\\\", \\\" src='\\\", ' src=\\\"', \\\" Src='\\\", ' Src=\\\"', \\\" SRC='\\\", ' SRC=\\\"', \\\" src=\\\", \\\" Src=\\\", \\\" SRC=\\\");<br \/>\n<br \/>\n    if (uudirname != \\\"\\\" && url != \\\"\\\") {<br \/>\n     for (m=0; m&lt;ideas.length; m++) {<br \/>\n      huhs = inth.split(ideas[m]);<br \/>\n      if (huhs.length &gt; 1) {<br \/>\n        for (ii=eval(huhs.length - 1); ii&gt;=1; ii--) {<br \/>\n          delimis=ideas[m].substring(eval(ideas[m].length - 1), eval(ideas[m].length));<br \/>\n          if (delimis == \\\"=\\\") delimis=\\\" \\\";<br \/>\n          posthuhs=huhs[ii].trim().replace(\\\"&gt;\\\",\\\" \\\").replace(\/mailto:\/g, \\\"http:\\\").replace(\/javascript:none;\/g, \\\"http:\\\").split(delimis);<br \/>\n          if (posthuhs[0].length &gt; 0) {<br \/>\n          if (posthuhs[0].substring(0,1) == \\\"#\\\" || posthuhs[0].substring(0,4).toLowerCase().replace(\/file\/g, \\\"http\\\").toLowerCase() == \\\"http\\\") {<br \/>\n              outth = outth;<br \/>\n          } else if (posthuhs[0].substring(0,1) != \\\"\/\\\" && posthuhs[0].substring(0,1) != \\\"'\\\" && posthuhs[0].substring(0,1) != '\\\"') {<br \/>\n              while (outth.indexOf(posthuhs[0]) != -1) {<br \/>\n                outth=outth.replace(posthuhs[0], \\\"youwill-never-ever-findthis\\\");<br \/>\n              }<br \/>\n              outth=outth.replace(\/youwill-never-ever-findthis\/g, uudirname + posthuhs[0]).replace(\/\\\/\\.\\\/\/g, '\/');<br \/>\n          } else if (posthuhs[0].substring(1,2) != \\\"\/\\\" && posthuhs[0].substring(0,1) != \\\"'\\\" && posthuhs[0].substring(0,1) != '\\\"') {<br \/>\n              while (outth.indexOf(posthuhs[0]) != -1) {<br \/>\n                outth=outth.replace(posthuhs[0], \\\"youwill-never-ever-findthis\\\");<br \/>\n              }<br \/>\n              outth=outth.replace(\/youwill-never-ever-findthis\/g, uudirname.substring(0, eval(uudirname.length - 1)) + posthuhs[0]).replace(\/\\\/\\.\\\/\/g, '\/');<br \/>\n          }<br \/>\n          }<br \/>\n        }<br \/>\n      }<br \/>\n     }<br \/>\n    }<br \/>\n<br \/>\n    return outth.replace(\/\\\/\\.\\\/\/g, '\/');<br \/>\n }<br \/>\n<\/code><\/p>\n<p>Why is this mapping a good idea?  Well &#8230;<\/p>\n<ul>\n<li>user interaction wise, it is great to offer a user the chance to use either relative (for brevity) or absolute (for cross domain) URLs &#8230; and yet &#8230;<\/li>\n<li>email (and a web browser address bar and curl, as two other examples) are &#8220;starting from scratch&#8221; places regarding URLs and to link to other places online, need absolute URLs to succeed<\/li>\n<\/ul>\n<p>Yet again, we have <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php---GETME\" title=\"form_creator.php\">form_creator.php<\/a>&#8216;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\" title=\"Click picture\">live run<\/a> for you to try some Email (Inline) HTML.  It calls <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emailhtml.php----GETME\">the changed<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emailhtml.php----GETME\">emailhtml.php<\/a> to facilitate the Email Inline HTML body.<\/p>\n<hr>\n<p id='pdfsfchpt'>Previous relevant <a target=_blank title='PDF Slideshow and Form Creation Helper Preview Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-form-creation-helper-preview-tutorial\/'>PDF Slideshow and Form Creation Helper Preview Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PDF Slideshow and Form Creation Helper Preview Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator_html_rendering_preview.jpg\" title=\"PDF Slideshow and Form Creation Helper Preview Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">PDF Slideshow and Form Creation Helper Preview Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='PDF Slideshow and Form Creation Helper Primer Tutorial' href='#pdfsfchxt'>PDF Slideshow and Form Creation Helper Primer Tutorial<\/a> suited those used to uploading data, a lot of which will involve those users knowing a bit about HTML coding, in relation to that presentation of it within an HTML <a target=_blank title='HTML textarea information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp'>textarea<\/a> element.  We&#8217;re still asking you to know HTML coding as we add onto yesterday&#8217;s &#8230;<\/p>\n<ul>\n<li>HTML (or Text) view (in <a target=_blank title='HTML textarea information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp'>textarea<\/a>) &#8230; with, today &#8230;<\/li>\n<li>Visual view (in overlayed new window, and available to the user via a new light blue non-form-submit button)<\/li>\n<\/ul>\n<p> &#8230; mimicking what a lot of Content Management Systems (CMS) provide for their Content Managers, that being a way HTML input data, that can be previewed by that user in a &#8220;Visual view&#8221; showing an HTML webpage rendering of that HTML coding.  This can reassure users that what they are (HTML) coding will produce a look in keeping with what they were expecting.<\/p>\n<p>In our <a target=_blank title='WordPress.org' href='http:\/\/wordpress.org'>WordPress<\/a> blog CMS they do this for the Content Writer with two tabs called &#8220;Text&#8221; (ie. the HTML coding) and &#8220;Visual&#8221; (ie. the HTML as rendered by the web browser involved).  That is cute, and easy to use, but we see the &#8220;Visual&#8221; part as optional, and don&#8217;t really wish to prioritise its use.  As well as that, it is a stepping stone to another improvement we wish to make, soon.<\/p>\n<p>Again, we have <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php--GETME\" title=\"form_creator.php\">form_creator.php<\/a>&#8216;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\" title=\"Click picture\">live run<\/a> for you to try.<\/p>\n<p><b><i>Did you know?<\/i><\/b><\/p>\n<p>The HTML <a target=_blank title='HTML textarea information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_textarea.asp'>textarea<\/a> element is truly amazing, and the performing of today&#8217;s work has clarified (some more <font size=1>&#8230; have been letting it wash over for years!<\/font>) how it works in my mind.<\/p>\n<p>There are two parts to the &#8220;content&#8221; of a textarea element we want to concentrate on.  They are its &#8220;innerHTML&#8221; (what it looks like) and its &#8220;value&#8221; (what gets passed with an HTML form as its data).<\/p>\n<p>We often, here at RJM Programming, start a textarea&#8217;s existence with HTML of a textarea with a blank &#8220;value&#8221; but a filled in &#8220;innerHTML&#8221;, and that filling in can be HTML code with all the caretted &lt; and &gt; data we get used to as Web Content managers.  Immediately, on that textarea element&#8217;s onload, that textarea will be given a &#8220;value&#8221;.<\/p>\n<p>But if you make a change to that textarea data, or even if you don&#8217;t, and go back to see the relationship &#8230;<\/p>\n<ul>\n<li>&#8220;value&#8221; is full of the caretted &lt; and &gt; characters &#8230; but &#8230;<\/li>\n<li>&#8220;innerHTML&#8221; is full of corresponding &amp;lt; and &amp;gt; <a target=_blank title='HTML enties information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/List_of_XML_and_HTML_character_entity_references'>HTML entities<\/a><\/li>\n<\/ul>\n<p> &#8230; and as explainers of HTML (in online blogs and online HTML articles) around the world will know, that use of &amp;lt; and &amp;gt; within &lt;code&gt;&lt;\/code&gt; elements for instance, saves the web browser by thinking it needs to interpret the carets of HTML code, and, instead, as we the explainers would prefer too, just display the caret characters as displayed text.<\/p>\n<p>This is a topic, and it feels alive, and undertold, &#8220;The Wonders of the HTML Textarea Element&#8221;, that you, dear reader, may want to individually look into yourself, by writing your own HTML to see this textarea behaviour yourself.   And we haven&#8217;t even touched on, here, possibilities regarding setting a textarea to &#8220;readonly&#8221; true?  And how the web browsers often allow for resizing it so easily?  All fascinating!  We suspect it was fascinating to the web browser and mobile platform programmers as well, and they came up with a very powerful and useful tool for lots of online content writers out there.<\/p>\n<hr>\n<p id='pdfsfchxt'>Previous relevant <a target=_blank title='PDF Slideshow and Form Creation Helper Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-form-creation-helper-primer-tutorial\/'>PDF Slideshow and Form Creation Helper Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PDF Slideshow and Form Creation Helper Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.jpg\" title=\"PDF Slideshow and Form Creation Helper Primer Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">PDF Slideshow and Form Creation Helper Primer Tutorial<\/p><\/div>\n<p>Our recent work involving the great <a target=_blank title='Fpdf PHP class' href='HTTP:\/\/www.fpdf.org\/'>Fpdf<\/a> creator of PDF files when we presented <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ajax-formdata-object-no-body-php-pdf-tutorial\/' title='Ajax FormData Object No Body PHP PDF Tutorial'>Ajax FormData Object No Body PHP PDF Tutorial<\/a> has got us starting on a new PDF (PHP) web application we are starting out thinking will help with &#8230;<\/p>\n<ul>\n<li>online forms (probably via thinking in terms of <a target=_blank title='Fpdf PHP class' href='HTTP:\/\/www.fpdf.org\/'>Fpdf<\/a> open source programmers like <a target=_blank title='Useful link' href='HTTP:\/\/www.fpdf.org\/en\/script\/script50.php' title='Rick van Buuren and Cl\u00e9ment Lavoillotte Fdf code, thanks'>Rick van Buuren and Cl\u00e9ment Lavoillotte<\/a>&#8216;s excellent HTML table rendering ideas) via HTML table intermediate user interactions &#8230; and &#8230;<\/li>\n<li>slideshows<\/li>\n<\/ul>\n<p> &#8230; but we will not be surprised if the project branches out into other ideas.  We&#8217;ll see over time.<\/p>\n<p>We hope you come along for the trip starting with a bit of a proof of concept <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php_GETME\" title=\"form_creator.php\">form_creator.php<\/a>&#8216;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/form_creator.php\" title=\"Click picture\">live run<\/a> for you to try, where we allow you to enter (and be able to change) some HTML table code (if that&#8217;s what you end up with?!) in a pink HTML textarea element, and that will become PDF should you click the underlying HTML form&#8217;s yellow submit button.<\/p>\n<p>Hope to see you for tomorrow&#8217;s PDF writing developments here.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d46998' onclick='var dv=document.getElementById(\"d46998\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/form\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d46998' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d47039' onclick='var dv=document.getElementById(\"d47039\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/textarea\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d47039' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d47050' onclick='var dv=document.getElementById(\"d47050\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/email\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d47050' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d47067' onclick='var dv=document.getElementById(\"d47067\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/poll\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d47067' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Another functionality dovetailing with the recent PDF Slideshow and Form Creation Helper Inline Email Tutorial&#8216;s use of Email Inline HTML (mimetype text\/html), we figure, is &#8230; Online Polling via Email &#8230; being that &#8220;one step easier than downloading&#8221; method to &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/pdf-slideshow-and-poll-form-creation-inline-email-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,37],"tags":[52,258,327,380,3127,577,2732,932,961,997,1045,1049,3126,1319,1345,1404,1418],"class_list":["post-47067","post","type-post","status-publish","format-standard","hentry","category-elearning","category-tutorials","tag-absolute-url","tag-content-management-systems","tag-did-you-know","tag-email","tag-html-email","tag-html-entities","tag-mimetype","tag-php","tag-poll","tag-programming","tag-relative-url","tag-render","tag-texthtml","tag-tutorial","tag-url","tag-web-browser","tag-webpage"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47067"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=47067"}],"version-history":[{"count":5,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47067\/revisions"}],"predecessor-version":[{"id":47075,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47067\/revisions\/47075"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=47067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=47067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=47067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}