<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10germanfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="de-DE"><title type="text">H.-Peter Pfeufer</title><link rel="alternate" type="text/html" href="http://ppfeufer.de" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ppfeufer" /><subtitle type="html">Webentwickler und WordPress-Freund</subtitle><updated>2013-05-19T11:38:08+00:00</updated><generator>http://wordpress.org/?v=3.5.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ppfeufer" /><feedburner:info uri="ppfeufer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://ppfeufer.de/?pushpress=hub" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><feedburner:emailServiceId>ppfeufer</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=de&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://us.i1.yimg.com/us.yimg.com/i/de/my/addtomyyahoo4.gif">Subscribe with Mein Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ppfeufer" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fppfeufer" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><entry><title type="text">WordPress 3.6 – Was wird es Neues geben? - Ein kleiner Blick unter die Haube von WordPress 3.6</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/f7kH_jNvBvA/" /><category term="WordPress" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-05-13T03:29:24-07:00</updated><id>http://ppfeufer.de/?p=29854</id><summary type="html">&lt;div&gt;&lt;img width="547" height="249" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-logo-auf-holz-547x249.jpg" class="attachment-small-feature wp-post-image" alt="WordPress Logo" /&gt;&lt;/div&gt;Die dritte Beta von WordPress 3.6 ist erschienen, Zeit mal einen kleinen Blick zu wagen, was es denn in der neuen Version so alles Schönes und Neues geben wird. In den vergangenen Tagen wurden ja hier und da immer mal &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="249" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-logo-auf-holz-547x249.jpg" class="attachment-small-feature wp-post-image" alt="WordPress Logo" /&gt;&lt;/div&gt;&lt;p&gt;Die dritte Beta von WordPress 3.6 ist erschienen, Zeit mal einen kleinen Blick zu wagen, was es denn in der neuen Version so alles Schönes und Neues geben wird. In den vergangenen Tagen wurden ja hier und da immer mal wieder ein paar Stichpunkte veröffentlicht, ich versuche das nun mal grob zusammen zu fassen.&lt;/p&gt;&lt;p&gt;&lt;span id="more-29854"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;Post Formats (Artikelformate)&lt;/h2&gt;&lt;div id="attachment_29858" class="wp-caption aligncenter" style="width: 600px"&gt;&lt;a href="http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-artikelformate/" rel="attachment wp-att-29858"&gt;&lt;img class=" wp-image-29858  " alt="Die neue Auswahl der Artikelformate in WordPress 3.6." src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-artikelformate-590x59.jpg" width="590" height="59" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Die neue Auswahl der Artikelformate in WordPress 3.6.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Diese werden wesentlich einfacher zu handhaben sein. Während in WordPress 3.5 noch ein &amp;#8220;Widget&amp;#8221; die Artikelformate auflistet und dieses gerne mal etwas auf der Bearbeiten-Seite des Artikels unter geht, werden diese nun deutlich in den Vordergrund gebracht. Und zwar direkt ganz oben beim Erstellen oder Bearbeiten eines Artikels. Je nach Auswahl des Formates werden dann auch die entsprechenden Formularelemente eingeblendet. So erhält man bei &amp;#8220;Video&amp;#8221; zum Beispiel ein Feld um den Embed-Code des Videos direkt dort eingeben zu können. Diese können auch ganz bequem über die Optionen am oberen Browserrand ausgeblendet werden, wenn man sie nicht nutzen möchte.&lt;/p&gt;&lt;p&gt;&lt;a href='http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-new-article/' title='WordPress 3.6: Neuer Artikel'&gt;&lt;img width="280" height="150" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-new-article-280x150.jpg" class="attachment-thumbnail" alt="Unterstützung der verschiedenen Posttypen wird wesentlich deutlicher und wesentlich einfacher für den Autoren." /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href='http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-edit-article-optionen/' title='WordPress 3.6: Optionen Artikel bearbeiten'&gt;&lt;img width="280" height="150" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-edit-article-optionen-280x150.jpg" class="attachment-thumbnail" alt="Über diese Optionen können verschiedene Elemente auf der Bearbeiten Seite ausgeblendet werden." /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;oEmbed&lt;/h2&gt;&lt;p&gt;Ist bei WordPress zuständig, um Links zu Videos bei Youtube oder Twitter in eine &amp;#8220;schöne&amp;#8221; Anzeige um zu wandeln. Bei WordPress 3.5 ist die Unterstützung für Twitter hinzu gekommen, bei WordPress 3.6 werden wieder zwei Dienste neu dabei sein. Die beiden Musikstreamingdienste &lt;a href="http://www.rdio.com/"&gt;Rdio&lt;/a&gt; und &lt;a href="https://www.spotify.com/"&gt;Spotify&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Eigene Menüs&lt;/h2&gt;&lt;p&gt;Auch hier wurde etwas gearbeitet. Diese sollen nun noch leichter zu erstellen sein, als bisher. Die Seite unter Design -&amp;gt; Menüs wurde überarbeitet und in zwei Reiter aufgeteilt. Edit Menues und Manage Locations. Wie die Namen schon sagen, kann auf dem ersten Reiter ein Menü erstellt werden und auf dem Zweiten wird dieses einen Ort im Theme zugeordnet.&lt;/p&gt;&lt;p&gt;&lt;a href='http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-edit-menu/' title='WordPress 3.6: Menü editieren'&gt;&lt;img width="280" height="150" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-edit-menu-280x150.jpg" class="attachment-thumbnail" alt="In diesem Tab werden die Menüs erstellt." /&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href='http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-menu-locations/' title='WordPress 3.6: Menü zuordnen'&gt;&lt;img width="280" height="150" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-menu-locations-280x150.jpg" class="attachment-thumbnail" alt="In diesem Tab werden die Menüs im Theme zugeordnet." /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Umlaute im Titel&lt;/h2&gt;&lt;p&gt;Auch hier hat sich einiges getan. Mussten die deutschen Umlaute im Artikeltitel bisher via Plugin im Link angepasst werden, so geschieht dies nun automatisch und ein Plugin ist dafür nicht mehr notwendig.. Also aus &lt;em&gt;Ä&lt;/em&gt; wird im Link &lt;em&gt;ae&lt;/em&gt;, aus &lt;em&gt;Ö&lt;/em&gt; wird &lt;em&gt;oe&lt;/em&gt; und so weiter.&lt;/p&gt;&lt;h2&gt;Neues Standard-Theme&lt;/h2&gt;&lt;div id="attachment_29868" class="wp-caption aligncenter" style="width: 600px"&gt;&lt;a href="http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/wordpress-3-6-standard-theme-twenty-thirteen/" rel="attachment wp-att-29868"&gt;&lt;img class="size-medium wp-image-29868" alt="Das neue Standard-Theme &amp;quot;Twenty Thirteen&amp;quot; setzt auf kräftige Farben." src="http://cdn.ppfeufer.de/wp-content/uploads/2013/05/wordpress-3-6-standard-theme-twenty-thirteen-590x320.jpg" width="590" height="320" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Das neue Standard-Theme &amp;#8220;Twenty Thirteen&amp;#8221; setzt auf kräftige Farben.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Hier wirds bunt, Twenty Thirteen setzt auf kräftige Farben, ist grozügig was den Platz auf der Seite angeht und unterstützt alle Formatvorlagen von WordPress.&lt;/p&gt;&lt;h2&gt;Hinweis&lt;/h2&gt;&lt;p&gt;Wer sich selbst ein Bild von WordPress 3.6 machen möchte vorab, kann dies natürlich gerne tun. Die Nightly Builds liegen zum &lt;a href="http://ppfeufer.de/download/wordpress-nightly-build"&gt;Download&lt;/a&gt; bereit. Jedoch sei gesagt, dass diese nicht für den produktiven Einsatz gedacht sind, da es sich hier noch nicht um Finale Versionen handelt. Diese bitte nur in einer Testumgebung laufen lassen und nicht eure Seite damit versorgen.&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/f7kH_jNvBvA" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://ppfeufer.de/wordpress-3-6-was-wird-es-neues-geben/</feedburner:origLink></entry><entry><title type="text">Steam for Linux: Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/eKL-i-vhXH8/" /><category term="Gentoo Linux" /><category term="Gentoo" /><category term="Linux" /><category term="Steam" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-04-25T02:22:39-07:00</updated><id>http://ppfeufer.de/?p=29373</id><summary type="html">&lt;div&gt;&lt;img width="439" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/04/steam-for-linux-439x350.jpg" class="attachment-small-feature wp-post-image" alt="Steam for Linux" /&gt;&lt;/div&gt;Genau diese Meldung bekam ich, als ich heute Steam for Linux starten wollte. Was mich dabei sehr verwunderte, am Abend davor lief noch alles ohne Probleme durch, die Spiele liefen wie immer ohne Probleme. Doch als ich heute Steam for &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/steam-for-linux-assertion-failed-clientapi_initglobalinstance-internalapi_init_internal-failed/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="439" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/04/steam-for-linux-439x350.jpg" class="attachment-small-feature wp-post-image" alt="Steam for Linux" /&gt;&lt;/div&gt;&lt;p&gt;Genau diese Meldung bekam ich, als ich heute Steam for Linux starten wollte. Was mich dabei sehr verwunderte, am Abend davor lief noch alles ohne Probleme durch, die Spiele liefen wie immer ohne Probleme. Doch als ich heute Steam for Linux starten wolte, ging nichts, außer das ein Steam-Update vor dem Login lief. Danach nichts mehr.&lt;/p&gt;&lt;p&gt;&lt;span id="more-29373"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Also ließ ich Steam mal aus der Konsole heraus starten und bekam die folgenden Meldungen.&lt;/p&gt;&lt;div class="codecolorer-container text geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;20&lt;br /&gt;21&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;24&lt;br /&gt;25&lt;br /&gt;26&lt;br /&gt;27&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;30&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;ppfeufer@odin ~ $ steam&lt;br /&gt; Running Steam on gentoo  64-bit&lt;br /&gt; STEAM_RUNTIME is disabled by the user&lt;br /&gt; Installing breakpad exception handler for appid(steam)/version(1366845241_client)&lt;br /&gt; Installing breakpad exception handler for appid(steam)/version(1366845241_client)&lt;br /&gt; unlinked 0 orphaned pipes&lt;br /&gt; Installing breakpad exception handler for appid(steam)/version(1366845241_client)&lt;br /&gt; [0425/105338:ERROR:object_proxy.cc(239)] Failed to call method: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided by any .service files&lt;br /&gt; [0425/105338:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation&lt;br /&gt; /home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/steamUI/../common/steam/client_api.cpp (281) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.&lt;br /&gt; &lt;br /&gt; &lt;span style="display:block;background-color:#ffff66"&gt;Assert( Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.&lt;br /&gt;&lt;/span&gt;&lt;span style="display:block;background-color:#ffff66"&gt;):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/steamUI/../common/steam/client_api.cpp:281&lt;br /&gt;&lt;/span&gt;&lt;br /&gt; Installing breakpad exception handler for appid(steam)/version(1366845241_client)&lt;br /&gt; Uploading dump (out-of-process) [proxy '']&lt;br /&gt; /tmp/dumps/assert_20130425105338_1.dmp&lt;br /&gt; &lt;span style="display:block;background-color:#ffff66"&gt;/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/steamUI/SteamStartup.cpp (628) : Assertion Failed: ! &amp;quot;There was a problem with your Steam installation.\n&amp;quot; &amp;quot;Please reinstall steam.\n&amp;quot;&lt;br /&gt;&lt;/span&gt;unlinked 2 orphaned pipes&lt;br /&gt; CAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.&lt;br /&gt; CAsyncIOManager: 58 single object sleeps, 0 multi object sleeps&lt;br /&gt; CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps&lt;br /&gt; [2013-04-25 10:53:37] Startup - updater built Apr 24 2013 14:58:47&lt;br /&gt; [2013-04-25 10:53:37] Opted in to client beta 'publicbeta' via beta file&lt;br /&gt; [2013-04-25 10:53:37] Installation wird überprüft...&lt;br /&gt; [2013-04-25 10:53:37] Verification complete&lt;br /&gt; Shutting down. . .&lt;br /&gt; [2013-04-25 10:53:38] Shutdown&lt;br /&gt; Finished uploading minidump (out-of-process): success = yes&lt;br /&gt; response: CrashID=bp-0147e7de-308e-4670-93c6-dbfe32130425&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Also, irgendwas wollte da nicht und ich hab mich etwas durch die Steam Foren gewühlt und bin schließlich im &lt;a href="http://wiki.gentoo.org/wiki/Steam"&gt;Gentoo-Wiki&lt;/a&gt; fündig geworden, denn ein einfacher re-emerge von Steam hat auch nicht geholfen.&lt;/p&gt;&lt;div class="codecolorer-container bash geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;steam &lt;span style="color: #660033;"&gt;--reset&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Damit wird Steam zurückgesetzt ohne dass gleich alle Spieldaten verloren gehen und siehe da, ein größeres Update nach dem Start später konnte ich mich wieder einloggen.&lt;/p&gt;&lt;h3&gt;Update &lt;em&gt;(07. Mai 2013)&lt;/em&gt;&lt;/h3&gt;&lt;p&gt;Sollte der erst genannte Tipp nicht funktioniereen, kann man auch noch die Steam Runtime aktivieren.&lt;/p&gt;&lt;div class="codecolorer-container bash geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #007800;"&gt;STEAM_RUNTIME&lt;/span&gt;=&lt;span style="color: #000000;"&gt;1&lt;/span&gt; steam&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/eKL-i-vhXH8" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/steam-for-linux-assertion-failed-clientapi_initglobalinstance-internalapi_init_internal-failed/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://ppfeufer.de/steam-for-linux-assertion-failed-clientapi_initglobalinstance-internalapi_init_internal-failed/</feedburner:origLink></entry><entry><title type="text">CSS-Clearfix: Floats anständig clearen</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/CFiJQ6_DD84/" /><category term="CSS" /><category term="Clearfix" /><category term="CSS-Hacks" /><category term="HowTo" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-04-02T01:59:40-07:00</updated><id>http://ppfeufer.de/?p=12909</id><summary type="html">&lt;div&gt;&lt;img width="547" height="180" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/04/css-clearfix-547x180.jpg" class="attachment-small-feature wp-post-image" alt="CSS Clearfix" /&gt;&lt;/div&gt;Elemente die &amp;#34;gefloated&amp;#34; sind, trifft man überall auf Webseiten. also hier und da mal ein float:left; oder float:right; ist ja nicht weiter tragisch und hilft ungemein dabei, die Webseite zu gestalten. Allerdings sollte man immer dafür sorgen, dass das Floating &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/css-clearfix-floats-anstaendig-clearen/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="180" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/04/css-clearfix-547x180.jpg" class="attachment-small-feature wp-post-image" alt="CSS Clearfix" /&gt;&lt;/div&gt;&lt;p&gt;Elemente die &amp;quot;gefloated&amp;quot; sind, trifft man überall auf Webseiten. also hier und da mal ein &lt;em&gt;float:left;&lt;/em&gt; oder &lt;em&gt;float:right;&lt;/em&gt; ist ja nicht weiter tragisch und hilft ungemein dabei, die Webseite zu gestalten. Allerdings sollte man immer dafür sorgen, dass das Floating nach dem letzten Element aufgehoben wird, ansonsten kann es sein, dass das folgende Element etwas an der falschen Stelle steht.&lt;/p&gt;&lt;p&gt;&lt;span id="more-12909"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Hierzu wurde gerne &amp;#8211; und man sieht es noch sehr häufig &amp;#8211; ein leeres DIV mit der Klasse &lt;em&gt;clear&lt;/em&gt; eingefügt. Dies führt nun dazu, dass man im Zweifelsfall eine Menge von diesen sinnlosen und leeren Containern hat. Das muss nicht sein, denn um mal &lt;a href="http://www.guido-muehlwitz.de/"&gt;Guido Mühlwitz&lt;/a&gt; zu zitieren:&lt;/p&gt;&lt;div class="twitter-blockquote-tweet tweet-border" id="tweet-id-304164133539037185"&gt;&lt;blockquote class="twitter-blockquote"&gt;&lt;div class="tweet-author-vcard"&gt;&lt;span class="tweet-author-name"&gt;Guido Mühlwitz&lt;span class="tweet-author-info"&gt;&lt;img class="tweet-author-profile-image alignleft" src="http://a0.twimg.com/profile_images/2554913728/9v8j1byhaygwuopyzzsz_normal.jpeg" alt="" /&gt;&lt;a class="tweet-author-url" href="http://twitter.com/#!/muehlwitz"&gt;@muehlwitz&lt;/a&gt;&lt;br /&gt;Follower: 757&lt;br /&gt;&lt;small&gt;Webdeveloper &amp;#038; Blogger mit Hang zur komplexen Webanwendung. Gefährlicher Hobby-Koch mit Gasgrill und Hang zu Spanferkel.&lt;/small&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tweet-content entry-content"&gt;&lt;p&gt;@&lt;a href="http://twitter.com/intent/user?screen_name=ppfeufer" class="twitter-action"&gt;ppfeufer&lt;/a&gt; dafür hat der gott des internets :before und :after erfunden ;)&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;und auch &lt;a href="http://www.torbenleuschner.de/"&gt;Torben Leuschner&lt;/a&gt; hat da seine eigene Art das Problem zu lösen:&lt;/p&gt;&lt;div class="twitter-blockquote-tweet tweet-border" id="tweet-id-304163692910608384"&gt;&lt;blockquote class="twitter-blockquote"&gt;&lt;div class="tweet-author-vcard"&gt;&lt;span class="tweet-author-name"&gt;Torben Leuschner&lt;span class="tweet-author-info"&gt;&lt;img class="tweet-author-profile-image alignleft" src="http://a0.twimg.com/profile_images/2683336930/8563b2472cd99bdfc698050fb2f64ec4_normal.png" alt="" /&gt;&lt;a class="tweet-author-url" href="http://twitter.com/#!/torbenleuschner"&gt;@torbenleuschner&lt;/a&gt;&lt;br /&gt;Follower: 725&lt;br /&gt;&lt;small&gt;Mag technisches Online Marketing, regen Wissensaustausch, nette Kontakte, moderne Webtechnologien und guten Kaffee :)&lt;/small&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tweet-content entry-content"&gt;&lt;p&gt;@&lt;a href="http://twitter.com/intent/user?screen_name=ppfeufer" class="twitter-action"&gt;ppfeufer&lt;/a&gt; overflow:auto;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Also, hier die beiden Lösungsansätze, die beide wunderbar funktionieren.&lt;/p&gt;&lt;div class="codecolorer-container html4strict geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;20&lt;br /&gt;21&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;24&lt;br /&gt;25&lt;br /&gt;26&lt;br /&gt;27&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;30&lt;br /&gt;31&lt;br /&gt;32&lt;br /&gt;33&lt;br /&gt;34&lt;br /&gt;35&lt;br /&gt;36&lt;br /&gt;37&lt;br /&gt;38&lt;br /&gt;39&lt;br /&gt;40&lt;br /&gt;41&lt;br /&gt;42&lt;br /&gt;43&lt;br /&gt;44&lt;br /&gt;45&lt;br /&gt;46&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #00bbdd;"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/html.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/head.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/meta.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;charset&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/title.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Clearing Floats&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/title.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/style.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;style&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;type&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .float-left {float:left; width:300px;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .float-right {float:right; width:300px;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .container {overflow:auto;}&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Clearfix&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ----------------------------------------------- */&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .clearfix:after {content:&amp;quot;.&amp;quot;; display:block; clear:both; visibility:hidden; line-height:0; height:0;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .clearfix {zoom:1;} /* For IE 6/7 (trigger hasLayout) */&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; html[xmlns] .clearfix {display:block;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * html .clearfix {height:1%;}&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/style.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;style&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/head.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/body.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Overflow-Methode&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;float-left&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Der hier ist links gefloatet.&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;float-right&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Der hier ist rechts gefloatet&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Und hier geht es ohne Floating weiter&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Hier die Clearfix-Methode&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;clearfix&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;float-left&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Der hier ist links gefloatet.&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;float-right&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Der hier ist rechts gefloatet&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Und hier geht es ohne Floating weiter&lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/body.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/html.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Viel Spaß :-)&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/CFiJQ6_DD84" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/css-clearfix-floats-anstaendig-clearen/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://ppfeufer.de/css-clearfix-floats-anstaendig-clearen/</feedburner:origLink></entry><entry><title type="text">Große SQL-Dumps aufteilen</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/lZOeWXUvRd4/" /><category term="Allgemein" /><category term="Dump" /><category term="Import" /><category term="Spillter" /><category term="SQL" /><category term="SQLDumpSpiltter" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-03-20T01:20:51-07:00</updated><id>http://ppfeufer.de/?p=12898</id><summary type="html">&lt;div&gt;&lt;img width="305" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/sql-dump-spiltter-305x350.jpg" class="attachment-small-feature wp-post-image" alt="SQL Dump Splitter" /&gt;&lt;/div&gt;Ab und an muss man auch mal in PHPMyadmin einen SQL-Dump importieren. Ist ja prinzipiell erst mal kein Thema, aber es kann auch vorkommen, dass diese .sql-Datei doch sehr groß ist und somit das Limit, welches in PHP gesetzt ist &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/grosse-sql-dumps-aufteilen/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="305" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/sql-dump-spiltter-305x350.jpg" class="attachment-small-feature wp-post-image" alt="SQL Dump Splitter" /&gt;&lt;/div&gt;&lt;p&gt;Ab und an muss man auch mal in PHPMyadmin einen SQL-Dump importieren. Ist ja prinzipiell erst mal kein Thema, aber es kann auch vorkommen, dass diese .sql-Datei doch sehr groß ist und somit das Limit, welches in PHP gesetzt ist bei weitem überschreitet. Alles per Hand aus der Datei rausfummeln ist in solchen Fällen zu umständlich und kostet viel zu viel Zeit.&lt;/p&gt;&lt;p&gt;&lt;span id="more-12898"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Für genau solche Fälle habe ich ein kleines Tool gefunden, welches da schnell und umkompliziert Abhilfe schafft. SQLDumpSpiltter nennt es sich und ist unter &lt;a href="http://www.sqldumpsplitter.com/"&gt;http://www.sqldumpsplitter.com/&lt;/a&gt; frei erhältlich. Einfach runterladen und starten, SQL-Datei auswählen, die gwünschte Größe der Teildateien angeben und los geht. Das Tool zerlegt dann die große SQL-Datei in mehrere kleinere die fein durchnummeriert sind. Zusätzlich wird noch eine Datei mit angelegt, welche DataStructure im Namen hat. Diese muss zuerst importiert werden, da hier die Tabellendefinitionen drin sind. Die restlichen Dateien einfach der Nummerierung nach inportieren und fertig.&lt;/p&gt;&lt;p&gt;Spart oftmals viel Zeit und Nerven.&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/lZOeWXUvRd4" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/grosse-sql-dumps-aufteilen/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><feedburner:origLink>http://ppfeufer.de/grosse-sql-dumps-aufteilen/</feedburner:origLink></entry><entry><title type="text">(PHP) Einmal XML to Array und zurück bitte</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/0M5lqjCiVM0/" /><category term="PHP" /><category term="Array" /><category term="HowTo" /><category term="XML" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-03-18T04:29:49-07:00</updated><id>http://ppfeufer.de/?p=12887</id><summary type="html">&lt;div&gt;&lt;img width="547" height="230" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/xml-to-array-beispiel-547x230.jpg" class="attachment-small-feature wp-post-image" alt="XML to Array Beispiel" /&gt;&lt;/div&gt;Ab und an steht man vor der Herausforderung mit XML spielen zu müssen. Also XML auslesen, die Werte in ein Array werfen, verarbeiten, in eine Datenbank speichern, diese über eine Weboberfläche manipulieren und zu guter letzt wieder aus den neuen &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/php-einmal-xml-to-array-und-zurueck-bitte/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="230" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/xml-to-array-beispiel-547x230.jpg" class="attachment-small-feature wp-post-image" alt="XML to Array Beispiel" /&gt;&lt;/div&gt;&lt;p&gt;Ab und an steht man vor der Herausforderung mit XML spielen zu müssen. Also XML auslesen, die Werte in ein Array werfen, verarbeiten, in eine Datenbank speichern, diese über eine Weboberfläche manipulieren und zu guter letzt wieder aus den neuen Werten ein XML zaubern. Alles nicht gerade man in ner Stunde gemacht, aber dennoch machbar. Dazu habe ich im weltweiten Netz zwei schöne Klassen gefunden, die mir neMenge Arbeit erspart haben, denn warum soll ich das Rad neu erfinden, wenn es schon Lösungen gibt und diese möchte ich euch nicht vorenthalten.&lt;/p&gt;&lt;p&gt;&lt;span id="more-12887"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;XML to Array&lt;/h2&gt;&lt;p&gt;Mit dieser Klasse wird das XML in ein Array umgewandelt.&lt;/p&gt;&lt;div class="codecolorer-container php geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;20&lt;br /&gt;21&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;24&lt;br /&gt;25&lt;br /&gt;26&lt;br /&gt;27&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;30&lt;br /&gt;31&lt;br /&gt;32&lt;br /&gt;33&lt;br /&gt;34&lt;br /&gt;35&lt;br /&gt;36&lt;br /&gt;37&lt;br /&gt;38&lt;br /&gt;39&lt;br /&gt;40&lt;br /&gt;41&lt;br /&gt;42&lt;br /&gt;43&lt;br /&gt;44&lt;br /&gt;45&lt;br /&gt;46&lt;br /&gt;47&lt;br /&gt;48&lt;br /&gt;49&lt;br /&gt;50&lt;br /&gt;51&lt;br /&gt;52&lt;br /&gt;53&lt;br /&gt;54&lt;br /&gt;55&lt;br /&gt;56&lt;br /&gt;57&lt;br /&gt;58&lt;br /&gt;59&lt;br /&gt;60&lt;br /&gt;61&lt;br /&gt;62&lt;br /&gt;63&lt;br /&gt;64&lt;br /&gt;65&lt;br /&gt;66&lt;br /&gt;67&lt;br /&gt;68&lt;br /&gt;69&lt;br /&gt;70&lt;br /&gt;71&lt;br /&gt;72&lt;br /&gt;73&lt;br /&gt;74&lt;br /&gt;75&lt;br /&gt;76&lt;br /&gt;77&lt;br /&gt;78&lt;br /&gt;79&lt;br /&gt;80&lt;br /&gt;81&lt;br /&gt;82&lt;br /&gt;83&lt;br /&gt;84&lt;br /&gt;85&lt;br /&gt;86&lt;br /&gt;87&lt;br /&gt;88&lt;br /&gt;89&lt;br /&gt;90&lt;br /&gt;91&lt;br /&gt;92&lt;br /&gt;93&lt;br /&gt;94&lt;br /&gt;95&lt;br /&gt;96&lt;br /&gt;97&lt;br /&gt;98&lt;br /&gt;99&lt;br /&gt;100&lt;br /&gt;101&lt;br /&gt;102&lt;br /&gt;103&lt;br /&gt;104&lt;br /&gt;105&lt;br /&gt;106&lt;br /&gt;107&lt;br /&gt;108&lt;br /&gt;109&lt;br /&gt;110&lt;br /&gt;111&lt;br /&gt;112&lt;br /&gt;113&lt;br /&gt;114&lt;br /&gt;115&lt;br /&gt;116&lt;br /&gt;117&lt;br /&gt;118&lt;br /&gt;119&lt;br /&gt;120&lt;br /&gt;121&lt;br /&gt;122&lt;br /&gt;123&lt;br /&gt;124&lt;br /&gt;125&lt;br /&gt;126&lt;br /&gt;127&lt;br /&gt;128&lt;br /&gt;129&lt;br /&gt;130&lt;br /&gt;131&lt;br /&gt;132&lt;br /&gt;133&lt;br /&gt;134&lt;br /&gt;135&lt;br /&gt;136&lt;br /&gt;137&lt;br /&gt;138&lt;br /&gt;139&lt;br /&gt;140&lt;br /&gt;141&lt;br /&gt;142&lt;br /&gt;143&lt;br /&gt;144&lt;br /&gt;145&lt;br /&gt;146&lt;br /&gt;147&lt;br /&gt;148&lt;br /&gt;149&lt;br /&gt;150&lt;br /&gt;151&lt;br /&gt;152&lt;br /&gt;153&lt;br /&gt;154&lt;br /&gt;155&lt;br /&gt;156&lt;br /&gt;157&lt;br /&gt;158&lt;br /&gt;159&lt;br /&gt;160&lt;br /&gt;161&lt;br /&gt;162&lt;br /&gt;163&lt;br /&gt;164&lt;br /&gt;165&lt;br /&gt;166&lt;br /&gt;167&lt;br /&gt;168&lt;br /&gt;169&lt;br /&gt;170&lt;br /&gt;171&lt;br /&gt;172&lt;br /&gt;173&lt;br /&gt;174&lt;br /&gt;175&lt;br /&gt;176&lt;br /&gt;177&lt;br /&gt;178&lt;br /&gt;179&lt;br /&gt;180&lt;br /&gt;181&lt;br /&gt;182&lt;br /&gt;183&lt;br /&gt;184&lt;br /&gt;185&lt;br /&gt;186&lt;br /&gt;187&lt;br /&gt;188&lt;br /&gt;189&lt;br /&gt;190&lt;br /&gt;191&lt;br /&gt;192&lt;br /&gt;193&lt;br /&gt;194&lt;br /&gt;195&lt;br /&gt;196&lt;br /&gt;197&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp;* XmlToArray: A class to convert XML to array in PHP&lt;br /&gt; &amp;nbsp;* It returns the array which can be converted back to XML using the Array2XML script&lt;br /&gt; &amp;nbsp;* It takes an XML string or a DOMDocument object as an input.&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* See Array2XML: http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* Author : Lalit Patel&lt;br /&gt; &amp;nbsp;* Website: http://www.lalit.org/lab/convert-xml-to-array-in-php-XmlToArray&lt;br /&gt; &amp;nbsp;* License: Apache License 2.0&lt;br /&gt; &amp;nbsp;* &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* Usage:&lt;br /&gt; &amp;nbsp;* &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $array = XmlToArray::createArray($xml);&lt;br /&gt; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;a href="http://www.php.net/class_exists"&gt;&lt;span style="color: #990000;"&gt;class_exists&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'XmlToArray'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; XmlToArray &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'UTF-8'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Initialize the root XML node [optional]&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $version&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $encoding&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param bool $format_output&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; init&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$version&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'1.0'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'UTF-8'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$format_output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; DOMDocument&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$version&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;formatOutput&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$format_output&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END public static function init($version = '1.0', $encoding = 'UTF-8', $format_output = true)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Convert an XML to Array&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $input_xml&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws Exception&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return Ambigous DOMDocument &amp;lt;Ambigous, string, multitype:multitype: string multitype:string &amp;nbsp;Ambigous &amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&lt;/span&gt;createArray&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;strip_comment&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;getXMLRoot&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_string"&gt;&lt;span style="color: #990000;"&gt;is_string&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$parsed&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;loadXML&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;span style="color: #000088;"&gt;$parsed&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;throw&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; Exception&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'[XmlToArray] Error parsing the XML string.'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!$parsed)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;else&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/get_class"&gt;&lt;span style="color: #990000;"&gt;get_class&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;!=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'DOMDocument'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;throw&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; Exception&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'[XmlToArray] The input XML object should be of type: DOMDocument.'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(get_class($input_xml) != 'DOMDocument')&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_string($input_xml))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;documentElement&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;tagName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;convert&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;documentElement&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// clear the xml node in the class for 2nd time use.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$array&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END public static function &amp;amp;createArray($input_xml)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Convert an Array to XML&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $node XML as a string or as an object of DOMDocument&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return Ambigous &amp;lt;string, multitype:multitype: string multitype:string &amp;nbsp;unknown &amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&lt;/span&gt;convert&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;switch&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;nodeType&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;case&lt;/span&gt; XML_CDATA_SECTION_NODE&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/trim"&gt;&lt;span style="color: #990000;"&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;textContent&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;break&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;case&lt;/span&gt; XML_TEXT_NODE&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/trim"&gt;&lt;span style="color: #990000;"&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;textContent&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;break&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;case&lt;/span&gt; XML_ELEMENT_NODE&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// for each child node, call the covert function recursively&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;for&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$m&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;childNodes&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;length&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$m&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #339933;"&gt;++&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$child&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;childNodes&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;item&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;convert&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$child&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/isset"&gt;&lt;span style="color: #990000;"&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$child&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;tagName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$t&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$child&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;tagName&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// assume more nodes of same kind are coming&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;a href="http://www.php.net/isset"&gt;&lt;span style="color: #990000;"&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$t&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$t&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!isset($output[$t]))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$t&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;else&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//check if it is not an empty text node&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;!==&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;''&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if($v !== '')&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(isset($child-&amp;gt;tagName))&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END for($i = 0, $m = $node-&amp;gt;childNodes-&amp;gt;length; $i &amp;lt; $m; $i++)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// if only one node of its kind, assign it directly instead if array($value);&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$t&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;a href="http://www.php.net/count"&gt;&lt;span style="color: #990000;"&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;==&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$t&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_array($v) &amp;amp;&amp;amp; count($v) == 1)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END foreach($output as $t =&amp;gt; $v)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/empty"&gt;&lt;span style="color: #990000;"&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//for empty nodes&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;''&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(empty($output))&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_array($output))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// loop through the attributes and collect them&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;attributes&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;length&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$a&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;attributes&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$attrName&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$attrNode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$a&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$attrName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;string&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$attrNode&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;value&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END foreach($node-&amp;gt;attributes as $attrName =&amp;gt; $attrNode)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// if its an leaf node, store the value in @value instead of directly storing it.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@value'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!is_array($output))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$a&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if($node-&amp;gt;attributes-&amp;gt;length)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;break&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END switch($node-&amp;gt;nodeType)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function &amp;amp;convert($node)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Get the root XML node, if there isn't one, create it.&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return NULL&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; getXMLRoot&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/empty"&gt;&lt;span style="color: #990000;"&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;init&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(empty(self::$xml))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function getXMLRoot()&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Strip the comments out of our XML&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $input_xml&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return string&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; strip_comment&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;a href="http://www.php.net/preg_replace"&gt;&lt;span style="color: #990000;"&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'/&amp;lt;!--(?:.(?&amp;lt;!--))*--&amp;gt;/'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;''&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$input_xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function strip_comment($input_xml)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END class XmlToArray&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!class_exists('XmlToArray'))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt; &amp;lt;movies type=&amp;quot;documentary&amp;quot;&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;lt;movie&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;title&amp;gt;PHP: Behind the Parser&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;characters&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;character&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;Ms. Coder&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;actor&amp;gt;Onlivia Actora&amp;lt;/actor&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/character&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;character&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;Mr. Coder&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;actor&amp;gt;El ActÓr&amp;lt;/actor&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/character&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/characters&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;plot&amp;gt;&amp;lt;![CDATA[So, this language. It\'s like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary.]]&amp;gt;&amp;lt;/plot&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;great-lines&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;line&amp;gt;PHP solves all my web problems&amp;lt;/line&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/great-lines&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;rating type=&amp;quot;thumbs&amp;quot;&amp;gt;7&amp;lt;/rating&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;rating type=&amp;quot;stars&amp;quot;&amp;gt;5&amp;lt;/rating&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;lt;/movie&amp;gt;&lt;br /&gt; &amp;lt;/movies&amp;gt;'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #000088;"&gt;$array&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; XmlToArray&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;createArray&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #b1b100;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'&amp;lt;pre&amp;gt;'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/print_r"&gt;&lt;span style="color: #990000;"&gt;print_r&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h2&gt;Array to XML&lt;/h2&gt;&lt;p&gt;Und hier wieder zurück in ein XML&lt;/p&gt;&lt;div class="codecolorer-container php geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;20&lt;br /&gt;21&lt;br /&gt;22&lt;br /&gt;23&lt;br /&gt;24&lt;br /&gt;25&lt;br /&gt;26&lt;br /&gt;27&lt;br /&gt;28&lt;br /&gt;29&lt;br /&gt;30&lt;br /&gt;31&lt;br /&gt;32&lt;br /&gt;33&lt;br /&gt;34&lt;br /&gt;35&lt;br /&gt;36&lt;br /&gt;37&lt;br /&gt;38&lt;br /&gt;39&lt;br /&gt;40&lt;br /&gt;41&lt;br /&gt;42&lt;br /&gt;43&lt;br /&gt;44&lt;br /&gt;45&lt;br /&gt;46&lt;br /&gt;47&lt;br /&gt;48&lt;br /&gt;49&lt;br /&gt;50&lt;br /&gt;51&lt;br /&gt;52&lt;br /&gt;53&lt;br /&gt;54&lt;br /&gt;55&lt;br /&gt;56&lt;br /&gt;57&lt;br /&gt;58&lt;br /&gt;59&lt;br /&gt;60&lt;br /&gt;61&lt;br /&gt;62&lt;br /&gt;63&lt;br /&gt;64&lt;br /&gt;65&lt;br /&gt;66&lt;br /&gt;67&lt;br /&gt;68&lt;br /&gt;69&lt;br /&gt;70&lt;br /&gt;71&lt;br /&gt;72&lt;br /&gt;73&lt;br /&gt;74&lt;br /&gt;75&lt;br /&gt;76&lt;br /&gt;77&lt;br /&gt;78&lt;br /&gt;79&lt;br /&gt;80&lt;br /&gt;81&lt;br /&gt;82&lt;br /&gt;83&lt;br /&gt;84&lt;br /&gt;85&lt;br /&gt;86&lt;br /&gt;87&lt;br /&gt;88&lt;br /&gt;89&lt;br /&gt;90&lt;br /&gt;91&lt;br /&gt;92&lt;br /&gt;93&lt;br /&gt;94&lt;br /&gt;95&lt;br /&gt;96&lt;br /&gt;97&lt;br /&gt;98&lt;br /&gt;99&lt;br /&gt;100&lt;br /&gt;101&lt;br /&gt;102&lt;br /&gt;103&lt;br /&gt;104&lt;br /&gt;105&lt;br /&gt;106&lt;br /&gt;107&lt;br /&gt;108&lt;br /&gt;109&lt;br /&gt;110&lt;br /&gt;111&lt;br /&gt;112&lt;br /&gt;113&lt;br /&gt;114&lt;br /&gt;115&lt;br /&gt;116&lt;br /&gt;117&lt;br /&gt;118&lt;br /&gt;119&lt;br /&gt;120&lt;br /&gt;121&lt;br /&gt;122&lt;br /&gt;123&lt;br /&gt;124&lt;br /&gt;125&lt;br /&gt;126&lt;br /&gt;127&lt;br /&gt;128&lt;br /&gt;129&lt;br /&gt;130&lt;br /&gt;131&lt;br /&gt;132&lt;br /&gt;133&lt;br /&gt;134&lt;br /&gt;135&lt;br /&gt;136&lt;br /&gt;137&lt;br /&gt;138&lt;br /&gt;139&lt;br /&gt;140&lt;br /&gt;141&lt;br /&gt;142&lt;br /&gt;143&lt;br /&gt;144&lt;br /&gt;145&lt;br /&gt;146&lt;br /&gt;147&lt;br /&gt;148&lt;br /&gt;149&lt;br /&gt;150&lt;br /&gt;151&lt;br /&gt;152&lt;br /&gt;153&lt;br /&gt;154&lt;br /&gt;155&lt;br /&gt;156&lt;br /&gt;157&lt;br /&gt;158&lt;br /&gt;159&lt;br /&gt;160&lt;br /&gt;161&lt;br /&gt;162&lt;br /&gt;163&lt;br /&gt;164&lt;br /&gt;165&lt;br /&gt;166&lt;br /&gt;167&lt;br /&gt;168&lt;br /&gt;169&lt;br /&gt;170&lt;br /&gt;171&lt;br /&gt;172&lt;br /&gt;173&lt;br /&gt;174&lt;br /&gt;175&lt;br /&gt;176&lt;br /&gt;177&lt;br /&gt;178&lt;br /&gt;179&lt;br /&gt;180&lt;br /&gt;181&lt;br /&gt;182&lt;br /&gt;183&lt;br /&gt;184&lt;br /&gt;185&lt;br /&gt;186&lt;br /&gt;187&lt;br /&gt;188&lt;br /&gt;189&lt;br /&gt;190&lt;br /&gt;191&lt;br /&gt;192&lt;br /&gt;193&lt;br /&gt;194&lt;br /&gt;195&lt;br /&gt;196&lt;br /&gt;197&lt;br /&gt;198&lt;br /&gt;199&lt;br /&gt;200&lt;br /&gt;201&lt;br /&gt;202&lt;br /&gt;203&lt;br /&gt;204&lt;br /&gt;205&lt;br /&gt;206&lt;br /&gt;207&lt;br /&gt;208&lt;br /&gt;209&lt;br /&gt;210&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp;* ArrayToXml: A class to convert array in PHP to XML&lt;br /&gt; &amp;nbsp;* It also takes into account attributes names unlike SimpleXML in PHP&lt;br /&gt; &amp;nbsp;* It returns the XML in form of DOMDocument class for further manipulation.&lt;br /&gt; &amp;nbsp;* It throws exception if the tag name or attribute name has illegal chars.&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* Author : Lalit Patel&lt;br /&gt; &amp;nbsp;* Website: http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes&lt;br /&gt; &amp;nbsp;* License: Apache License 2.0&lt;br /&gt; &amp;nbsp;* &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* Usage:&lt;br /&gt; &amp;nbsp;* &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $xml = ArrayToXml::createXML('root_node_name', $php_array);&lt;br /&gt; &amp;nbsp;* &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo $xml-&amp;gt;saveXML();&lt;br /&gt; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;a href="http://www.php.net/class_exists"&gt;&lt;span style="color: #990000;"&gt;class_exists&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'ArrayToXml'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; ArrayToXml &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'UTF-8'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Initialize the root XML node [optional]&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $version&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $encoding&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param bool $format_output&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; init&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$version&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'1.0'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'UTF-8'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$format_output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; DomDocument&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$version&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;formatOutput&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$format_output&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$encoding&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END public static function init($version = '1.0', $encoding = 'UTF-8', $format_output = true)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Convert an Array to XML&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $node_name name of the root node to be converted&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param array $arr aray to be converterd&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return DomDocument&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&lt;/span&gt;createXML&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$arr&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;getXMLRoot&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;convert&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// clear the xml node in the class for 2nd time use.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END public static function &amp;amp;createXML($node_name, $arr = array())&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Convert an Array to XML&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $node_name name of the root node to be converted&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param array $arr aray to be converterd&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws Exception&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return DOMNode&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&lt;/span&gt;convert&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$arr&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//print_arr($node_name);&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;getXMLRoot&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;createElement&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// get the attributes first.;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/isset"&gt;&lt;span style="color: #990000;"&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$key&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;isValidTagName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;throw&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; Exception&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'[ArrayToXml] Illegal character in attribute name. attribute: '&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #000088;"&gt;$key&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;' in node: '&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!self::isValidTagName($key))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;setAttribute&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;bool2str&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END foreach($arr['@attributes'] as $key =&amp;gt; $value)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/unset"&gt;&lt;span style="color: #990000;"&gt;unset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;//remove the key from the array once done.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(isset($arr['@attributes']))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// check if it has a value stored in @value, if yes store the value and return&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// else check if its directly stored as string&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/isset"&gt;&lt;span style="color: #990000;"&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@value'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;createTextNode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;bool2str&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@value'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/unset"&gt;&lt;span style="color: #990000;"&gt;unset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@value'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;//remove the key from the array once done.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//return from recursion, as a note with value cannot have child nodes.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;else&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/isset"&gt;&lt;span style="color: #990000;"&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;createCDATASection&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;bool2str&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/unset"&gt;&lt;span style="color: #990000;"&gt;unset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;//remove the key from the array once done.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//return from recursion, as a note with cdata cannot have child nodes.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(isset($arr['@value']))&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_array($arr))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//create subnodes using recursion&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// recurse to get the node for that key&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$key&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;isValidTagName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;throw&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; Exception&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'[ArrayToXml] Illegal character in tag name. tag: '&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #000088;"&gt;$key&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;' in node: '&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node_name&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!self::isValidTagName($key))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;a href="http://www.php.net/is_numeric"&gt;&lt;span style="color: #990000;"&gt;is_numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/key"&gt;&lt;span style="color: #990000;"&gt;key&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// MORE THAN ONE NODE OF ITS KIND;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// if the new array is numeric index, means it is array of nodes of the same kind&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// it should follow the parent key name&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$value&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$k&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;convert&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END foreach($value as $k =&amp;gt; $v)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;else&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// ONLY ONE NODE OF ITS KIND&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;convert&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$value&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_array($value) &amp;amp;&amp;amp; is_numeric(key($value)))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/unset"&gt;&lt;span style="color: #990000;"&gt;unset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$key&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;//remove the key from the array once done.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END foreach($arr as $key =&amp;gt; $value)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(is_array($arr))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// after we are done with all the keys in the array (if it is one)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;// we check if it has any text value, if yes, append it.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: #990000;"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;appendChild&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;createTextNode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;bool2str&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$arr&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!is_array($arr))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$node&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function &amp;amp;convert($node_name, $arr = array())&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Get the root XML node, if there isn't one, create it.&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return string&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; getXMLRoot&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.php.net/empty"&gt;&lt;span style="color: #990000;"&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;init&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(empty(self::$xml))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;self&lt;/span&gt;&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function getXMLRoot()&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Get string representation of boolean value&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param bool $v&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return Ambigous &amp;lt;string, unknown&amp;gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; bool2str&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #666666; font-style: italic;"&gt;//convert boolean to text value.&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;===&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; ? &lt;span style="color: #0000ff;"&gt;'true'&lt;/span&gt; &lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;===&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;false&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; ? &lt;span style="color: #0000ff;"&gt;'false'&lt;/span&gt; &lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function bool2str($v)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Check if the tag name or attribute name contains illegal characters Ref:&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* http://www.w3.org/TR/xml/#sec-common-syn&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param string $tag&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return boolean&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; static &lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; isValidTagName&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$tag&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000088;"&gt;$pattern&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'/^[a-z_]+[a-z0-9\:\-\.\_]*[^:]*$/i'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;a href="http://www.php.net/preg_match"&gt;&lt;span style="color: #990000;"&gt;preg_match&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$pattern&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$tag&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$matches&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$matches&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;==&lt;/span&gt; &lt;span style="color: #000088;"&gt;$tag&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END private static function isValidTagName($tag)&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END class ArrayToXml&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// END if(!class_exists('ArrayToXml'))&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #000088;"&gt;$array&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'type'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'fiction'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'book'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'author'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'George Orwell'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'title'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'1984'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'author'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'Isaac Asimov'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'title'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'Foundation'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'price'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'$15.61'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'author'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'Robert A. Heinlein'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'title'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &amp;nbsp;&lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@cdata'&lt;/span&gt;&lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'Stranger in a Strange Land'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'price'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@attributes'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'discount'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'10%'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'@value'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'$18.00'&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #000088;"&gt;$xml&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; ArrayToXml&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;createXML&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'books'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #b1b100;"&gt;echo&lt;/span&gt; &lt;a href="http://www.php.net/htmlentities"&gt;&lt;span style="color: #990000;"&gt;htmlentities&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$xml&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;saveXML&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h2&gt;Credits&lt;/h2&gt;&lt;p&gt;Wie ich schon eingangs erwähnte, habe ich das Rad hier nicht neu erfunden, sondern zwei vorgefertigte Lösungen hergenommen. Die Variante XML to Array habe ich noch um eine Methode erweitert, welche mir eventuelle Kommentare erst mal aus dem Array rauswirft, da diese nur stören bei der Umwandling. &amp;#8220;Erfunden&amp;#8221; hat die beiden Klassen Lalit Patel der diese auch veröffentlicht hat.&lt;/p&gt;&lt;p&gt;XML to Array by Lalit Patel: &lt;a href="http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array/"&gt;http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array/&lt;/a&gt;&lt;br /&gt; Array to XML by Lalit Patel: &lt;a href="http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/"&gt;http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/&lt;/a&gt;&lt;br /&gt; Mein Dank gilt daher diesem Herren, er hat mir ne Menge Zeit erspart :-)&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/0M5lqjCiVM0" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/php-einmal-xml-to-array-und-zurueck-bitte/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://ppfeufer.de/php-einmal-xml-to-array-und-zurueck-bitte/</feedburner:origLink></entry><entry><title type="text">Ich darf mich nun offiziell “Shopware certified Developer” nennen</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/F0gD-sDSegQ/" /><category term="Allgemein" /><category term="Developer" /><category term="Shopware" /><category term="Zertifikat" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-03-12T03:20:53-07:00</updated><id>http://ppfeufer.de/?p=12873</id><summary type="html">&lt;div&gt;&lt;img width="465" height="306" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/shopware-certified-developer.jpg" class="attachment-small-feature wp-post-image" alt="Shopware Certified Developer" /&gt;&lt;/div&gt;Eines schönen Montagmorgen im Büro überfiel mich mein Chef. &amp;#8220;Hast Du meine Mail gelesen?&amp;#8221; Ich wusste erst gar nicht welche er meinte, da über das Wochenende mein Postfach erstaunlich ruhig blieb. Nun, nach kurzer Erörterung der Sachlage stellte sich heraus, &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/ich-darf-mich-nun-offiziell-shopware-certified-developer-nennen/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="465" height="306" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/shopware-certified-developer.jpg" class="attachment-small-feature wp-post-image" alt="Shopware Certified Developer" /&gt;&lt;/div&gt;&lt;p&gt;Eines schönen Montagmorgen im Büro überfiel mich mein Chef. &amp;#8220;Hast Du meine Mail gelesen?&amp;#8221;&lt;br /&gt; Ich wusste erst gar nicht welche er meinte, da über das Wochenende mein Postfach erstaunlich ruhig blieb. Nun, nach kurzer Erörterung der Sachlage stellte sich heraus, dass er mir über Xing eine Nachricht hat zukommen lassen. Alles nicht so tragisch, Grund der Mail war, dass ich spontan an einer Schulung für Shopware teilnehmen sollte. Der Zug dorthin ist dann auch schon vor 5 Minuten los gefahren.&lt;/p&gt;&lt;p&gt;&lt;span id="more-12873"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Alles etwas spontan, und wer schaut schon an einem Wochenende ob in Xing eine Nachricht ausm Büro eintrudeln. Auch nicht weiter tragisch, Ahaus, das Hauptquartier von &lt;a title="Tobit Software" href="http://www.tobit.com/"&gt;Tobit Software&lt;/a&gt;, das sind die wo die Schulungen für &lt;a title="Shopware" href="http://www.shopware.de/"&gt;Shopware&lt;/a&gt; stattfinden, ist nicht wirklich weit weg und so hat Cheffe mich kurzerhand persönlich dort abgeliefert. Klasse Service :-)&lt;/p&gt;&lt;p&gt;Also, was soll ich noch groß sagen, Schulung hinter mich gebracht und erfolgreich bestanden und nun liegt hier neben mir ein Zertifikat, welches mich als Shopware certified Developer betitelt.&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/F0gD-sDSegQ" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/ich-darf-mich-nun-offiziell-shopware-certified-developer-nennen/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://ppfeufer.de/ich-darf-mich-nun-offiziell-shopware-certified-developer-nennen/</feedburner:origLink></entry><entry><title type="text">(CSS) Boxen im Pinterest-Style</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/KtxvTrA8tGU/" /><category term="CSS" /><category term="Boxen" /><category term="HTML" /><category term="Pinterest" /><category term="Styling" /><author><name>H.-Peter Pfeufer</name></author><updated>2013-03-06T07:33:36-08:00</updated><id>http://ppfeufer.de/?p=12859</id><summary type="html">&lt;div&gt;&lt;img width="372" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/pinterest-css-boxen-372x350.jpg" class="attachment-small-feature wp-post-image" alt="CSS Boxen im Pinterest Style" /&gt;&lt;/div&gt;Ab und an muss man mal ein paar Boxen auf einer Webseite darstellen. Diese sehen schön aus, wenn sie sauber nebeneinander &amp;#8220;gefloetet&amp;#8221; sind, wenn sie alle die gleiche Höhe haben. Haben sie das nicht, kann es vorkommen, dass ab und &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/css-boxen-im-pinterest-style/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="372" height="350" src="http://cdn.ppfeufer.de/wp-content/uploads/2013/03/pinterest-css-boxen-372x350.jpg" class="attachment-small-feature wp-post-image" alt="CSS Boxen im Pinterest Style" /&gt;&lt;/div&gt;&lt;p&gt;Ab und an muss man mal ein paar Boxen auf einer Webseite darstellen. Diese sehen schön aus, wenn sie sauber nebeneinander &amp;#8220;gefloetet&amp;#8221; sind, wenn sie alle die gleiche Höhe haben. Haben sie das nicht, kann es vorkommen, dass ab und an etwas viel Platz zwischen den einzelnen Boxen ist. Je nach dem, wo die Vorherige aufhört und die Nächste anfängt. Wäre es da nicht schön, wenn sich alle Boxen irgendwie selbst anordnen? Also quasi da wo Platz ist?&lt;/p&gt;&lt;p&gt;&lt;span id="more-12859"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Pinterest macht es in der Kategorieübersicht vor und beweist dass es möglich ist. Ok, da wird ein dickes JavaScript hergenommen welches die einzelnen Boxen absulot positioniert. Is ne Lösung, aber es geht auch schlanker, mit etwas CSS.&lt;/p&gt;&lt;p&gt;Hier das HTML:&lt;/p&gt;&lt;div class="codecolorer-container html4strict geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;boxes&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/img.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;img&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;src&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;http://placekitten.com/400/300&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;alt&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;PlaceKitten&amp;quot;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Jean shorts street art flexitarian ... &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/img.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;img&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;src&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;http://placekitten.com/g/400/300&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;alt&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;PlaceKitten&amp;quot;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Leggings pour-over banksy, DIY wolf tattooed ... &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/img.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;img&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #000066;"&gt;src&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;http://placekitten.com/500/450&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;alt&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;=&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;PlaceKitten&amp;quot;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Put a bird on it viral wolf, 3 wolf moon ... &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/p.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #808080; font-style: italic;"&gt;&amp;lt;!-- and so on ... --&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009900;"&gt;&amp;lt;&lt;span style="color: #66cc66;"&gt;/&lt;/span&gt;&lt;a href="http://december.com/html/4/element/div.html"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Und hier wirds schön:&lt;/p&gt;&lt;div class="codecolorer-container css geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;19&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #6666ff;"&gt;.boxes&lt;/span&gt; &lt;span style="color: #00AA00;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -moz-column-count&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -moz-column-gap&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #933;"&gt;10px&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -moz-column-fill&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;auto&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -webkit-column-count&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -webkit-column-gap&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #933;"&gt;10px&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -webkit-column-fill&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;auto&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; column-count&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; column-gap&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #933;"&gt;10px&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; column-fill&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;auto&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #00AA00;"&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #6666ff;"&gt;.box&lt;/span&gt; &lt;span style="color: #00AA00;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -moz-column-break-&lt;span style="color: #993333;"&gt;inside&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;avoid&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; -webkit-column-break-&lt;span style="color: #993333;"&gt;inside&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;avoid&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; column-break-&lt;span style="color: #993333;"&gt;inside&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt; &lt;span style="color: #993333;"&gt;avoid&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;display&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt;inline-&lt;span style="color: #993333;"&gt;block&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &amp;nbsp; &lt;span style="color: #000000; font-weight: bold;"&gt;padding&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;:&lt;/span&gt;&lt;span style="color: #933;"&gt;10px&lt;/span&gt;&lt;span style="color: #00AA00;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #00AA00;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Gebraucht hab ich das gerade für ein Projekt und gefunden habe ich den Trick auf &lt;a title="CSS-Only Pinterest Style Columns Layout" href="http://cssdeck.com/labs/css-only-pinterest-style-columns-layout"&gt;CSSDeck.com&lt;/a&gt;. Schöne Lösung, funktioniert, ich bin zufrieden und muss nicht lange basteln :-)&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/KtxvTrA8tGU" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/css-boxen-im-pinterest-style/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://ppfeufer.de/css-boxen-im-pinterest-style/</feedburner:origLink></entry><entry><title type="text">(Gentoo) Linux: EVE Online mit mehreren Clients (Multiple Instanzen)</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/MAytVGBTfII/" /><category term="Gentoo Linux" /><category term="Eve Online" /><category term="Gentoo" /><category term="HowTo" /><category term="Linux" /><author><name>H.-Peter Pfeufer</name></author><updated>2012-09-19T14:22:33-07:00</updated><id>http://ppfeufer.de/?p=4832</id><summary type="html">&lt;div&gt;&lt;img width="547" height="153" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/09/eve-online-unter-gentoo-kde-547x153.jpg" class="attachment-small-feature wp-post-image" alt="EVE Online unter Gentoo (KDE)" /&gt;&lt;/div&gt;Es ist schon eine Weile her, da hatte ich hier mal beschrieben, wie man EVE Online unter Gentoo-Linux ans Laufen bringt. Klappt auch noch alles wunderbar, nun möchte ich mich den Spielern widmen, die mehrere Charaktere &amp;#8211; Piloten &amp;#8211; haben, &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/gentoo-linux-eve-online-mit-mehreren-clients-multiple-instanzen/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="153" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/09/eve-online-unter-gentoo-kde-547x153.jpg" class="attachment-small-feature wp-post-image" alt="EVE Online unter Gentoo (KDE)" /&gt;&lt;/div&gt;&lt;p&gt;Es ist schon eine Weile her, da hatte ich hier mal beschrieben, wie man EVE Online unter Gentoo-Linux ans Laufen bringt. Klappt auch noch alles wunderbar, nun möchte ich mich den Spielern widmen, die mehrere Charaktere &amp;#8211; Piloten &amp;#8211; haben, also auch mehr als eine Instanz des Clients starten müssen. Dabei kann es wichtig sein, dass jeder Client der gestartet wird, auch wirklich seine eigene Instanz des Spieles darstellt, Also separater Cache und komplett separate Einstellungen. Das ist alles einfacher als es sich anhört.&lt;/p&gt;&lt;p&gt;&lt;span id="more-4832"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;Installation&lt;/h2&gt;&lt;p&gt;Die Installation von &lt;a href="http://www.eveonline.com/"&gt;EVE Online&lt;/a&gt; unter (Gentoo) Linux ist nicht weiter schwer, wie das genau geht, steht hier im Blog im Artikel &amp;#8220;&lt;a title="Eve Online unter Gentoo Linux" href="http://ppfeufer.de/eve-online-unter-gentoo-linux/"&gt;Eve Online unter Gentoo Linux&lt;/a&gt;&amp;#8220;. Wichtig ist einfach, dass ihr auch wirklich mittels &lt;strong&gt;winetricks&lt;/strong&gt; die &lt;em&gt;corefonts&lt;/em&gt; und &lt;em&gt;Directx&lt;/em&gt; istalliert habt, bevor ihr loslegt. Aber steht ja alles in dem Artikel beschrieben :-)&lt;/p&gt;&lt;h2&gt;Multiple Instanzen&lt;/h2&gt;&lt;p&gt;Der EVE-Client nutzt für vieles im Spiel einen eigenen Cache. Avatarbilder anderer Piloten, Icons der Schiffe und so weiter. Auch hat der Client ein eigenes Verzeichnis für die Einstellungen. Hierbei wird zwischen globalen Einstellungen und pilotenabhängigen Einstellungen unterschieden. Globale Einstellungen betreffen die Sprache des Client, die Soundeinstellungen, Grafik und so weiter. Also alles was Im Spiel in dem schönen Menü, welches über die ESC-Taste zu erreichen ist, angesiedelt ist. Zu den globalen Einstellungen gehört aus die Anordnung der Übersicht im All und deren Einstellungen.&lt;/p&gt;&lt;p&gt;Hat man nun mehrere Accounts, so kann es durchaus sinnvoll und hilfreich sein, wenn diese in jedem Client selbst vorgenommen werden könnten und sich nicht auf die anderen Accounts auswirken.&lt;/p&gt;&lt;p&gt;Um dies zu ermögliche geht ihr einfach via Konsole in das Verzeichnis, in dem euer EVE Online Verzeichnis ist. Bei mir wäre das &lt;em&gt;~/.wine/drive_c/games&lt;/em&gt; und legt für jeden Account den ihr habt einen Symlink mittels &lt;em&gt;ln -s eve-online/ eve-online-pilotenname&lt;/em&gt; auf das EVE Online Verzeichnis an. Das sollte dann in etwa wie folgt aussehen.&lt;/p&gt;&lt;div class="codecolorer-container text geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;ppfeufer@odin ~/.wine/drive_c/games $ ll&lt;br /&gt; insgesamt 4&lt;br /&gt; drwxr-xr-x 8 ppfeufer ppfeufer 4096 19. Sep 02:37 eve-online&lt;br /&gt; lrwxrwxrwx 1 ppfeufer ppfeufer   11 19. Sep 03:05 eve-online-rounon-dax -&amp;gt; eve-online/&lt;br /&gt; lrwxrwxrwx 1 ppfeufer ppfeufer   11 19. Sep 03:07 eve-online-nero-talaura -&amp;gt; eve-online/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Nun müssen nur noch die Befehlszeilen für den Start der jeweiligen Instanzen angepasst werden. hierzu bedienen wir uns der Möglichkeit von &lt;strong&gt;wine&lt;/strong&gt; eine Applikation in einer eigenen Sandbox laufen zu lassen, also quasi in einem eigenen abgekapselten Desktop.&lt;/p&gt;&lt;p&gt;Sieht bei mir dann so aus:&lt;/p&gt;&lt;div class="codecolorer-container bash geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;wine&lt;/span&gt; explorer &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;span style="color: #007800;"&gt;desktop&lt;/span&gt;=&lt;span style="color: #000000;"&gt;0&lt;/span&gt;,1920x992 &lt;span style="color: #ff0000;"&gt;&amp;quot;/home/ppfeufer/.wine/drive_c/games/eve-online-rounon-dax/eve.exe&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="codecolorer-container bash geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;wine&lt;/span&gt; explorer &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;span style="color: #007800;"&gt;desktop&lt;/span&gt;=&lt;span style="color: #000000;"&gt;1&lt;/span&gt;,1920x992 &lt;span style="color: #ff0000;"&gt;&amp;quot;/home/ppfeufer/.wine/drive_c/games/eve-online-nero-talaura/eve.exe&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Der EVE-Client ist clever genug um die Symlinks zu erkennen und legt nun für jeden Piloten ein eigenes Verzeichnis für Einstellungen und Cache an.&lt;/p&gt;&lt;h2&gt;Der Beweis&lt;/h2&gt;&lt;p&gt;Ich selbst spiele EVE mit zwei Clients gleichzeitig. Davon ist einer deutsch und der andere englischsprachig angelegt.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a href="http://cdn.ppfeufer.de/wp-content/uploads/2012/09/eve-online-unter-gentoo-kde.jpg"&gt;&lt;img class="aligncenter  wp-image-4827" title="EVE Online unter Gentoo (KDE)" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/09/eve-online-unter-gentoo-kde-1140x328.jpg" alt="EVE Online unter Gentoo (KDE)" width="746" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Wie hier auf dem Bild zu sehen. laufen die beiden Clients ohne Probleme zusammen. Links der deutsche und rechts der englische Client.&lt;/p&gt;&lt;h2&gt;Kleines Bugfixing&lt;/h2&gt;&lt;p&gt;Ihr solltet, bevor ihr euch einloggt und die Station betretet in den Einstellungen den Haken für &amp;#8220;Stationsumgebung laden&amp;#8221; entfernen, da ihr sonst direkt im Captain&amp;#8217;s Quartier landet, was eventuell den Client zum crash bringt. Dieses kann noch nicht richtig geladen werden. Ich hoffe, dass dies bald möglich ist.&lt;/p&gt;&lt;p&gt;Solltet ihr beim Start des Clients keine Schrift sehen oder diese nicht lesbar sein, so hilft es wenn ihr die arial.ttf aus einer Windowsinstallation in eure wine-Umgebung kopiert. Ich kann aus Lizenzgründen die Schriftart hier nicht verlinken, also wenn ihr selbst kein Windows habt, fragt mal bei einem eurer Freunde nach. Zu finden ist diese unter Windows im Verzeichnis &lt;em&gt;C:\Windows\Fonts\arial.ttf&lt;/em&gt; und ihr legt sie unter &lt;em&gt;~/.wine/drive_c/windows/Fonts/arial.ttf&lt;/em&gt; ab.&lt;/p&gt;&lt;p&gt;Viel Spaß in EVE, vielleicht sieht man sich ja mal. Ihr wisst ja nun, wie meine beiden Piloten heißen.&lt;br /&gt; Also, fly safe :-)&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/MAytVGBTfII" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/gentoo-linux-eve-online-mit-mehreren-clients-multiple-instanzen/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://ppfeufer.de/gentoo-linux-eve-online-mit-mehreren-clients-multiple-instanzen/</feedburner:origLink></entry><entry><title type="text">Spamabwehr bei WordPress</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/i0GI8CFZZ3U/" /><category term="WordPress" /><category term="Antispam" /><category term="Blacklist" /><category term="Plugin" /><author><name>H.-Peter Pfeufer</name></author><updated>2012-08-21T07:07:25-07:00</updated><id>http://ppfeufer.de/?p=4787</id><summary type="html">&lt;div&gt;&lt;img width="547" height="309" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/08/stop-spam-547x309.png" class="attachment-small-feature wp-post-image" alt="Stop Spam" /&gt;&lt;/div&gt;Das alte leidige Thema, Spam. Jeder kennt es, jeder flucht darüber und immer wieder werden Wege gesucht, diesen abzuwehren. Bei WordPress selbst, ist es gar nicht mal so wirklich schwer, denn die Zusammenarbeit der Boardmittel von WordPress und einem AntiSpam-Plugin &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/spamabwehr-bei-wordpress/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="309" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/08/stop-spam-547x309.png" class="attachment-small-feature wp-post-image" alt="Stop Spam" /&gt;&lt;/div&gt;&lt;p&gt;Das alte leidige Thema, Spam. Jeder kennt es, jeder flucht darüber und immer wieder werden Wege gesucht, diesen abzuwehren. Bei WordPress selbst, ist es gar nicht mal so wirklich schwer, denn die Zusammenarbeit der Boardmittel von WordPress und einem AntiSpam-Plugin macht das Leben schon sehr viel leichter und angenehmer. Wie das genau funktionieren kann, möchte ich hier in diesem Artikel etwas näher erläutern.&lt;/p&gt;&lt;p&gt;&lt;span id="more-4787"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;Das AntiSpam-Plugin&lt;/h2&gt;&lt;p&gt;Da ich mich in Deutschland befinde und auch eine deutsche Webseite betreibe, kommt das mit WordPress mitgelieferte Plugin zur Samabwehr &amp;#8211; &lt;em&gt;Akismet&lt;/em&gt; &amp;#8211; schon mal &lt;strong&gt;nicht in Frage&lt;/strong&gt;. Wieso? Ganz einfach. Dieses Plugin gleicht die Daten des Kommentators mit einem nicht näher definierten Bestand an Daten auf US-amerikanischen Servern ab. Es schickt also Name, E-Mailadresse, Webseite und den Kommentar des Kommentators in die USA und da hat der deutsche Datenschutz etwas dagegen, wenn ich mich recht entsinne.&lt;/p&gt;&lt;p&gt;Daher setze ich persönlich hier auf &lt;a title="Antispam Bee" href="http://antispambee.de/"&gt;Antispam Bee&lt;/a&gt; von Sergej Müller. Das gleicht nichts mit irgendwelchen Servern ab, sondern nutzt komplett eigene Mechanismen zur Spamabwehr. Auch die Einrichtung des Plugin ist schnell und intuitiv.&lt;/p&gt;&lt;h2&gt;WordPress Boardmitel&lt;/h2&gt;&lt;p&gt;Diese scheinen viele nicht zu kennen. Werft doch mal in eurem Dashboard einen Blick in &lt;em&gt;Einstellungen&lt;/em&gt; -&amp;gt; &lt;em&gt;Diskussion&lt;/em&gt; und ihr findet dort viele Möglichkeiten Spam zu verhindern, bzw dessen automatisches Veröffentlichen im Kommentarbereich zu unterbinden.&lt;/p&gt;&lt;p&gt;Da hätten wir zum Beispiel die Option &amp;#8220;&lt;em&gt;Bevor der Kommentar erscheint&lt;/em&gt;&amp;#8220;, hier sollte der Autor zumindest einen genehmigten Kommentar haben. Wenn nicht, landet der Kommentar in der Kommentarmoderation und ihr könnt dann in aller Ruhe entscheiden ob ihr diesen zulasst, löscht oder als Spam markiert.&lt;/p&gt;&lt;p&gt;Auch der Punkt &amp;#8220;&lt;em&gt;Kommentarmoderation&lt;/em&gt;&amp;#8221; ist interessant. Ziel von Spam ist es doch meistens einen Link zu hinterlassen, gerne auch mehrere. Hier kann nun festgelegt werden, wie viele Links es im Kommentar braucht, damit dieser in der Moderation landet. Unabhängig von den Vorherigen Einstellungen zum Erstkommentar. Und dann hat es da auch noch ein großes Textfeld in welches ihr einzelne Wörter eintragen könnt, die ebenfalls dafür Sorge tragen, dass der Kommentar in der Moderation landet.&lt;/p&gt;&lt;p&gt;Das mächtigste Boardmittel von WordPress zur Spamabwehr ist allerdings die Kommentar-Blacklist. Auch das ist wieder ein Textfeld und arbeitet ähnlich wie das Textfeld bei der Kommentarmoderation. Mit den kleinen Unterschied, dass die Kommentare die hier gefiltert werden,direkt im Spam landen. Mit anderen Worten, hier habt ihr die Möglichkeit einen Komplett eigenen Spamfilter einzurichten. Also E-Mailadressen,Website-URLs, häufig in Spam verwendete Worte oder auch IPs von bekannten Spammern können hier eingetragen werden. Jeweils in einer eigenen Zeile. Und sollte nun eine dieser Zeilen in einem Kommentar zu finden sein, nun ja, der ist dann halt Spam.&lt;/p&gt;&lt;h2&gt;Fazit&lt;/h2&gt;&lt;p&gt;Es ist also gar nicht so wirklich schwer dem Spam etwas entgegen zu setzen, wenn man weiß wie. Und wenn diese Blacklisten auch gepflegt werden, hat man es ganz schnell ziemlich ruhig. Ich kann nur aus meinen eigenen Erfahrungen sagen, die Kombination aus Antispam Bee und den Blacklisten hilft ganz ausgezeichnet. Ach ja, bevor ich es vergesse, Captchas sind kein Mittel gegen Spam, sondern nur gegen Nutzer :-)&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/i0GI8CFZZ3U" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/spamabwehr-bei-wordpress/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">48</slash:comments><feedburner:origLink>http://ppfeufer.de/spamabwehr-bei-wordpress/</feedburner:origLink></entry><entry><title type="text">HowTo: WordPress und Piwik Analytics installieren und miteinander verheiraten</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ppfeufer/~3/hn2OqR_g8d4/" /><category term="WordPress" /><category term="HowTo" /><category term="Piwik" /><category term="Plugin" /><category term="WP-Piwik" /><author><name>H.-Peter Pfeufer</name></author><updated>2012-08-18T22:32:41-07:00</updated><id>http://ppfeufer.de/?p=4735</id><summary type="html">&lt;div&gt;&lt;img width="547" height="231" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/08/piwik-wordpress-547x231.png" class="attachment-small-feature wp-post-image" alt="Piwik - WordPress" /&gt;&lt;/div&gt;Ich wurde in einer Mail, die mich erreichte, gebeten, dass ich doch mal erläutern kann, wie man Piwik und WordPress miteinander verheiratet. Da scheint es noch so den einen oder anderen (Er)klärungsbedarf zu geben. Nun gut, da ich mich nicht &amp;#8230;&lt;/p&gt;&lt;p class="read-more"&gt;&lt;a class="more-link" href="http://ppfeufer.de/howto-wordpress-und-piwik-analytics-installieren-und-miteinander-verheiraten/"&gt;Weiterlesen &lt;span class="meta-nav"&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</summary><content type="html">&lt;div&gt;&lt;img width="547" height="231" src="http://cdn.ppfeufer.de/wp-content/uploads/2012/08/piwik-wordpress-547x231.png" class="attachment-small-feature wp-post-image" alt="Piwik - WordPress" /&gt;&lt;/div&gt;&lt;p&gt;Ich wurde in einer Mail, die mich erreichte, gebeten, dass ich doch mal erläutern kann, wie man Piwik und WordPress miteinander verheiratet. Da scheint es noch so den einen oder anderen (Er)klärungsbedarf zu geben. Nun gut, da ich mich nicht lumpen lasse, will ich das hier mal versuchen so schonend und umweltfreundlich wie möglich zu erklären.&lt;/p&gt;&lt;p&gt;&lt;span id="more-4735"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;Vorwort&lt;/h2&gt;&lt;p&gt;Ich gehe für diesen Artikel davon aus, dass es sich um eine selbstgehostete Installation von WordPress handelt, da ich nicht sagen kann, wie es sich bei den von wordpress.com gehosteten Blogs verhält. Wer möchte, kann diesen Artikel gerne auffassen und dies eventuell für die wordpress.com-Blogs bei sich erläutern.&lt;/p&gt;&lt;h2&gt;Voraussetzungen&lt;/h2&gt;&lt;p&gt;Also, hier nun einige Voraussetzungen, die man braucht, um seine WordPress-Seite mit Piwik Analytics zu verheiraten.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Webspace (besser einen eigenen Server)&lt;/li&gt;&lt;li&gt;zwei Datenbanken (eine für WordPress und eine für Piwik)&lt;/li&gt;&lt;li&gt;Zugriff auf den Webspace per FTP&lt;/li&gt;&lt;li&gt;einen Browser :-)&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Vorbereitungen&lt;/h2&gt;&lt;p&gt;Als erstes sollte man die Datenbanken einrichten. In den Voraussetzungen sprach ich von zwei Datenbanken. Das hat seinen Grund, denn wir trennen die Datenhaltung von WordPress und Piwik voneinander. Da es sich hier um zwei unterschiedliche Systeme handelt, sollten natürlich auch die Datenbanken getrennt sein.&lt;/p&gt;&lt;p&gt;Nun sollte man sich die Daten der Datenbanken notieren, die werden bei der Installation gebraucht.&lt;/p&gt;&lt;h3&gt;Datenbank 1 (WordPress)&lt;/h3&gt;&lt;p&gt;Host: localhost&lt;br /&gt; User: nutzername&lt;br /&gt; DB Name: wordpress-db&lt;br /&gt; DB-Passwort: ganzgheimespasswort&lt;br /&gt; Tabellenpäfix: my_wp_&lt;/p&gt;&lt;h3&gt;Datenbank 2 (Piwik)&lt;/h3&gt;&lt;p&gt;Host: localhost&lt;br /&gt; User: nutzername&lt;br /&gt; DB Name: piwik-db&lt;br /&gt; DB-Passwort: ganzgheimespasswort&lt;br /&gt; Tabellenpäfix: my_piwik_&lt;/p&gt;&lt;p&gt;Nachdem die beiden Datenbanken erstellt und die Daten notiert sind, kann es schon mit der Installation der beiden Systeme losgehen.&lt;/p&gt;&lt;h2&gt;Installation&lt;/h2&gt;&lt;p&gt;Diese ist bei beiden Systemen denkbar einfach. Hier wird nun der FTP gebraucht, den ich eingangs erwähnte.&lt;/p&gt;&lt;h3&gt;WordPress&lt;/h3&gt;&lt;p&gt;Zunächst muss &lt;a title="Downloadseite von wpde.org, der deutschen WordPress Community" href="http://wpde.org/download/"&gt;WordPress als .zip-Datei&lt;/a&gt; heruntergeladen werden. Diese wird nun erst einmal auf dem eigenen Rechner entpackt und die darin enthaltene Datei &lt;strong&gt;wp-config-sample.php &lt;/strong&gt;angepasst und als &lt;strong&gt;wp-config.php&lt;/strong&gt; abgespeichert. In der Beispieldatei steht vieles beschrieben, was die Konfiguration schon etwas einfacher macht.&lt;/p&gt;&lt;p&gt;Die Datenbankeinstellungen sind gleich am Anfang der Datei zu finden. Hier werden die Daten von Datenbank 1, also der Datenbank, welche für WordPress angelegt wurde, eingetragen. Sieht dann in etwa so aus:&lt;/p&gt;&lt;div class="codecolorer-container php geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;18&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #009933; font-style: italic;"&gt;/**  MySQL Einstellungen - diese Angaben bekommst du von deinem Webhoster. */&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/**  Ersetze database_name_here mit dem Namen der Datenbank, die du verwenden möchtest. */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_NAME'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'wordpress-db'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/** Ersetze username_here mit deinem MySQL-Datenbank-Benutzernamen */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_USER'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'ganzgheimespasswort'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/** Ersetze password_here mit deinem MySQL-Passwort */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_PASSWORD'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'password_here'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/** Ersetze localhost mit der MySQL-Serveradresse */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_HOST'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'localhost'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/** Der Datenbankzeichensatz der beim Erstellen der Datenbanktabellen verwendet werden soll */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_CHARSET'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'utf8'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: #009933; font-style: italic;"&gt;/** Der collate type sollte nicht geändert werden */&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'DB_COLLATE'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;''&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Den Zeichensatz und den Collate-Type sollte man so lassen, wie sie in der Datei stehen.&lt;/p&gt;&lt;p&gt;Im nächsten Abschnitt kommen die Sicherheitsschlüssel. Diese werden verwendet um Nutzerpasswörter zu salzen, also mit einem zusätzlichen Hash zu versehen, um diese nicht so einfach aus der Datenbank herauslesen zu können. Diefse Sicherheitsschlüssel können auf der Seite https://api.wordpress.org/secret-key/1.1/salt/ generiert werden lassen. Kann dann zum Beispiel wie folgt aussehen:&lt;/p&gt;&lt;div class="codecolorer-container php geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;br /&gt;9&lt;br /&gt;10&lt;br /&gt;11&lt;br /&gt;12&lt;br /&gt;13&lt;br /&gt;14&lt;br /&gt;15&lt;br /&gt;16&lt;br /&gt;17&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #009933; font-style: italic;"&gt;/**#@+&lt;br /&gt; &amp;nbsp;* Sicherheitsschlüssel&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* Ändere jeden KEY in eine beliebige, möglichst einzigartige Phrase. &lt;br /&gt; &amp;nbsp;* Auf der Seite {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service} kannst du dir alle KEYS generieren lassen.&lt;br /&gt; &amp;nbsp;* Bitte trage für jeden KEY eine eigene Phrase ein. Du kannst die Schlüssel jederzeit wieder ändern, alle angemeldeten Benutzer müssen sich danach erneut anmelden.&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* @seit 2.6.0&lt;br /&gt; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'AUTH_KEY'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'B}(*,3QG[llb~eNFN3tcUV8F*dxIrRfrl0Uglvqo#]qPP!E[F8+|]);L-m]G0%Y/'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'SECURE_AUTH_KEY'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp;&lt;span style="color: #0000ff;"&gt;'H&amp;amp;r4bUO!0d/~R_37X]Co31&amp;gt;:B+u*l-SPN}&amp;gt;^4j?ceOZ.CVL./I`X`!T[6u-1]neQ'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'LOGGED_IN_KEY'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;span style="color: #0000ff;"&gt;'aX[ooZH`{Hk?LAx}ijIy#CLd)e-~_lON-vvGR-kc?62sk=I=tcUN+v|FEnjlNA@u'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'NONCE_KEY'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #0000ff;"&gt;'F%XazxZ@nv5)Ty9.K-|&amp;gt;H_wsCo4/z+[APkQc|zvTden6.D J-ft6W&amp;lt;,Hawc-^i[s'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'AUTH_SALT'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #0000ff;"&gt;'k[?t8 K!(vHP@FUWNXczS;H7;aR:U/[c)w`dzn#?=_{Kw26~bb`|5z&amp;gt;2nIcHib)*'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'SECURE_AUTH_SALT'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'N7@E.QI::SokRL~B{s7|{_DdXn*C~1DT~+8%s1OOCP)o9XAt5nKwyeP}/f3-~(|d'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'LOGGED_IN_SALT'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'tR=Gd4wgvEt&amp;amp;j8f.o6;)lb/X4JE=4OYv6vQ67up&amp;amp;$u,j36R:/?7M(%=hH:8~ruXA'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;a href="http://www.php.net/define"&gt;&lt;span style="color: #990000;"&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'NONCE_SALT'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;'_5X-@,O,/D]SWbDzERiTx@ph4hmr|vG*-InOgJLY25iDg.uS61z!khDE}HXa2&amp;amp;c*'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Hinweis am Rande:&lt;/strong&gt; Diese hier solltet ihr nicht unbedingt hernehmen, sondern eigene generieren lassen.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Nun ist das Tabellenpräfix an der Reihe. Auch dafür gibt es eine Zeile in der wp-config.php in der der von uns gewählte Präfix hinterlegt wird. Dieser sollte auf jeden Fall geändert werden, da somit die Tabellen in der Datenbank einen einzigartigen Namen bekommen, was die Sicherheit doch schon etwas erhöht.&lt;/p&gt;&lt;div class="codecolorer-container php geshi syntaxhighlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:99%;"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"&gt;&lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"&gt;&lt;span style="color: #009933; font-style: italic;"&gt;/**&lt;br /&gt; &amp;nbsp;* WordPress Datenbanktabellen-Präfix&lt;br /&gt; &amp;nbsp;*&lt;br /&gt; &amp;nbsp;* &amp;nbsp;Wenn du verschiedene Präfixe benutzt, kannst du innerhalb einer Datenbank&lt;br /&gt; &amp;nbsp;* &amp;nbsp;verschiedene WordPress-Installationen betreiben. Nur Zahlen, Buchstaben und Unterstriche bitte!&lt;br /&gt; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #000088;"&gt;$table_prefix&lt;/span&gt; &amp;nbsp;&lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'my_wp_'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Der Rest der Datei kann so übernommen werden, wie er da steht.&lt;/p&gt;&lt;p&gt;Nun kann WordPress mittels FTP auf den Server überspielt werden. Um die Installation abzuschließen gebt nun die URL zu eurem WordPress in einem Browser eurer Wahl ein und folgt den Anweisungen.&lt;/p&gt;&lt;h3&gt;Piwik&lt;/h3&gt;&lt;p&gt;Widmen wir uns nun der Analysesoftware Piwik. Diese ist fast noch einfacher zu installieren als WordPress, denn hier muss man nicht erst eine Konfigurationsdatei anpassen. Einfach die &lt;a href="http://piwik.org/latest.zip" title="Download der aktuellen Piwik-Version"&gt;aktuelle Piwik-Version herunterladen&lt;/a&gt;, entpacken und mittels FTP auf den Server übertragen.&lt;/p&gt;&lt;p&gt;Auch hier wieder mit dem Browser eurer Wahl die URL von eurem Piwik-Verzeichnis ansurfen und den Instruktionen im Browser folgen. Die Daten zur Datenbank werden direkt im Browser eingegeben. Auf der Seite von Piwik ist auch eine &lt;a href="http://piwik.org/docs/installation/" title="Schritt für Schritt Anleitung zur Installation von Piwik"&gt;Schritt für Schritt Anleitung&lt;/a&gt; zu finden.&lt;/p&gt;&lt;p&gt;Während der Installation von Piwik werden euch bei Bedarf auch Hinweise angezeigt, wie ihr eventuelle Konfigurationsprobleme beheben könnt. Sehr elegante Lösung, wie ich finde.&lt;/p&gt;&lt;h2&gt;WordPress und Piwik verheiraten&lt;/h2&gt;&lt;p&gt;Nun da beides installiert ist, sollten die beiden Systeme sich auch endlich kennen lernen. Dazu loggt euch in euer WordPress ein und wählt den Menüpunkt &amp;#8220;&lt;em&gt;Plugins&lt;/em&gt;&amp;#8221; und instaliert hier das Plugin &amp;#8220;&lt;a href="http://wordpress.org/extend/plugins/wp-piwik/" title="WordPress-Plugin: WP-Piwik"&gt;WP-Piwik&lt;/a&gt;&amp;#8220;. Nachdem das Plugin installiert und aktiviert ist, findet ihr unter &amp;#8220;&lt;em&gt;Einstellungen&lt;/em&gt;&amp;#8221; &gt; &amp;#8220;&lt;em&gt;WP-Piwik&lt;/em&gt;&amp;#8221; alles was gebraucht wird, um WordPress und Piwik&lt;br /&gt; zusammen nutzen zu können.&lt;/p&gt;&lt;p&gt;Diese Seite selbst ist in mehrere Tabs unterteilt. Im Tab &amp;#8220;&lt;em&gt;Home&lt;/em&gt;&amp;#8221; finden sich später lediglich einige allgemeine Informationen zum Status des Plugins, dieser Tab ist nicht vorhanden, so lange das Plugin nicht konfiguriert wurde. Im Tab &amp;#8220;&lt;em&gt;Piwik Einstellungen&lt;/em&gt;&amp;#8221; finden sich die benötigten Felder, um WordPress mit Piwik zu verbinden.&lt;/p&gt;&lt;p&gt;Im Feld &amp;#8220;&lt;em&gt;Piwik URL (REST API)&lt;/em&gt;&amp;#8221; tragt ihr die URL zu eurer Piwik Installation ein, also beispielsweise &lt;em&gt;http://deineseite.de/piwik/&lt;/em&gt;. Nun fehlt nur noch euer Auth-Token, den findet ihr auf der API-Seite von eurem Piwik und ist ein langer Code aus Buchstaben und Zahlen. Ich persönlich empfehle den Haken bei &amp;#8220;Auto-Konfiguration&amp;#8221; zu setzen, dies erspart das Anlegen einer Seite im Piwik Backend und übernimmt das direkt für einen. Nun einfach die Einstellungen speichern und schon verbinden sich WordPress und Piwik miteinander.&lt;/p&gt;&lt;p&gt;Nachdem diese grundlegenden Einstellungen erfolgreich gespeichert wurden, sind auch ein paar mehr Tabs zu sehen. Unter anderem &amp;#8220;&lt;em&gt;Tracking&lt;/em&gt;&amp;#8220;, bei dem es nun weitergeht. Hier kann festgelegt werden, wie das Trackingscript von Piwik in eure Seite eingebunden werden soll, und vor allem, was alles erfasst werden soll. Auch hier die Empfehlung von mir, den ersten Haken zu setzen, um das Trackingscript automatisch einbinden zu lassen. Dies funktioniert natürlich nur, wenn das von euch verwendete Theme auch den Hook &lt;a href="http://codex.wordpress.org/wp_footer" title="Function Reference/wp footer"&gt;wp_footer()&lt;/a&gt; eingebaut hat. Wenn nicht, kann und sollte man dies schnell nachholen.&lt;/p&gt;&lt;h2&gt;Abgesang&lt;/h2&gt;&lt;p&gt;Das war es eigentlich auch schon. Alle Einstellungen des Plugins sind eigentlich selbsterklärend und bedürfen hier von meiner Seite aus keine weiteren Erläuterungen. Ich hoffe, meine Ausführungen konnten dem einen oder anderen und vor allem den Verfasser der Mail mit der Bitte nach diesen weiterhelfen. :-)&lt;/p&gt;&lt;p&gt;In diesem Sinne &amp;#8230;&lt;/p&gt; &lt;img src="http://feeds.feedburner.com/~r/ppfeufer/~4/hn2OqR_g8d4" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://ppfeufer.de/howto-wordpress-und-piwik-analytics-installieren-und-miteinander-verheiraten/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">13</slash:comments><feedburner:origLink>http://ppfeufer.de/howto-wordpress-und-piwik-analytics-installieren-und-miteinander-verheiraten/</feedburner:origLink></entry></feed>
