Created
July 29, 2012 19:49
-
-
Save blar/3201469 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| $content = ' | |
| <table><tr><td>00:00:00</td><td>Anfang</td></tr><tr><td>00:00:07</td><td>Mit Marcel</td></tr><tr> | |
| <td>00:00:16</td><td>und Martin</td></tr><tr><td>00:00:41</td><td>Tiny Wings</td></tr><tr><td>00:03:53</td><td> | |
| <a href="http://dealbook.nytimes.com/2012/07/16/googles-marissa-mayer-tapped-as-yahoos-chief/?hp&pagewanted=all" | |
| target="_blank">Marissa Mayer wir Yahoo CEO</td></tr><tr><td>00:10:20</td><td><a href="http://dearmarissamayer.com" | |
| target="_blank">dearmarissamayer.com</td></tr><tr><td>00:13:01</td><td><a | |
| href="https://hacks.mozilla.org/2012/07/firefox-beta-15-supports-the-new-opus-audio-format/" target="_blank">Firefox | |
| 15 mit Opus</td></tr><tr><td>00:20:45</td><td><a href="http://www.youtube.com/watch?v=zA_0_dSD3-Q" target="_blank">Durch | |
| die Nacht mit Jason Rohrer</td></tr><tr><td>00:29:42</td><td><a | |
| href="https://www.spiele-offensive.de/index.php?cmd=spieleschmiede&cfid=1" target="_blank">Express 01</td></tr><tr> | |
| <td>00:34:39</td><td><a href="http://www.mariancalladventurequest.com" target="_blank">Marian Call</td></tr><tr> | |
| <td>00:36:13</td><td>Instacast Kritik</td></tr><tr><td>00:40:33</td><td>iPhoto Versionen</td></tr><tr><td>00:43:05</td> | |
| <td>Online Office</td></tr><tr><td>00:45:23</td><td>iOS Programmieren ohne Macs?</td></tr><tr><td>00:46:26</td> | |
| <td>Schutzfolien</td></tr><tr><td>00:48:51</td><td>Jailbreak</td></tr><tr><td>00:53:09</td><td>Netzwerkprobleme</td> | |
| </tr><tr><td>00:57:20</td><td>Mediaserver</td></tr><tr><td>01:02:08</td><td>Marcels lustige Tipp-Kiste</td></tr><tr> | |
| <td>01:04:24</td><td><a href="http://itunes.apple.com/gb/app/chirp/id529469280?mt=8" target="_blank">Chirp</td></tr><tr> | |
| <td>01:09:27</td><td><a href="http://www.youtube.com/watch?v=MokNvbiRqCM" target="_blank">Rausschmeisser</td></tr> | |
| </table><p>Hello World</p>'; | |
| class RecursiveDOMIterator extends RecursiveArrayIterator { | |
| public function __construct($node) { | |
| parent::__construct(iterator_to_array($node->childNodes)); | |
| } | |
| public function getChildren() { | |
| return new self($this->current()); | |
| } | |
| public function hasChildren() { | |
| return $this->current()->hasChildNodes(); | |
| } | |
| } | |
| $document = new DOMDocument(); | |
| $document->loadHTML($content); | |
| $body = $document->getElementsByTagName('body')->item(0); | |
| $iterator = new RecursiveDOMIterator($body); | |
| $recursiveIterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST); | |
| foreach($recursiveIterator as $node) { | |
| switch($node->nodeType) { | |
| case XML_ELEMENT_NODE: | |
| echo PHP_EOL, str_repeat(' ', $recursiveIterator->getDepth()), $node->tagName, ':'; | |
| break; | |
| case XML_TEXT_NODE: | |
| if(trim($node->nodeValue)) { | |
| echo ' ', trim($node->nodeValue); | |
| } | |
| break; | |
| } | |
| } | |
| echo PHP_EOL; | |
| ?> | |
| table: | |
| tr: | |
| td: 00:00:00 | |
| td: Anfang | |
| tr: | |
| td: 00:00:07 | |
| td: Mit Marcel | |
| tr: | |
| td: 00:00:16 | |
| td: und Martin | |
| tr: | |
| td: 00:00:41 | |
| td: Tiny Wings | |
| tr: | |
| td: 00:03:53 | |
| td: | |
| a: Marissa Mayer wir Yahoo CEO | |
| tr: | |
| td: 00:10:20 | |
| td: | |
| a: dearmarissamayer.com | |
| tr: | |
| td: 00:13:01 | |
| td: | |
| a: Firefox | |
| 15 mit Opus | |
| tr: | |
| td: 00:20:45 | |
| td: | |
| a: Durch | |
| die Nacht mit Jason Rohrer | |
| tr: | |
| td: 00:29:42 | |
| td: | |
| a: Express 01 | |
| tr: | |
| td: 00:34:39 | |
| td: | |
| a: Marian Call | |
| tr: | |
| td: 00:36:13 | |
| td: Instacast Kritik | |
| tr: | |
| td: 00:40:33 | |
| td: iPhoto Versionen | |
| tr: | |
| td: 00:43:05 | |
| td: Online Office | |
| tr: | |
| td: 00:45:23 | |
| td: iOS Programmieren ohne Macs? | |
| tr: | |
| td: 00:46:26 | |
| td: Schutzfolien | |
| tr: | |
| td: 00:48:51 | |
| td: Jailbreak | |
| tr: | |
| td: 00:53:09 | |
| td: Netzwerkprobleme | |
| tr: | |
| td: 00:57:20 | |
| td: Mediaserver | |
| tr: | |
| td: 01:02:08 | |
| td: Marcels lustige Tipp-Kiste | |
| tr: | |
| td: 01:04:24 | |
| td: | |
| a: Chirp | |
| tr: | |
| td: 01:09:27 | |
| td: | |
| a: Rausschmeisser | |
| p: Hello World | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment