Advertisement
Guest User

02. Semantic HTML

a guest
Sep 1st, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.33 KB | None | 0 0
  1. <?php
  2.  
  3. $semantic = ['main', 'header', 'nav', 'article', 'section', 'aside', 'footer'];
  4. $html = preg_split('/\r\n/', $_GET['html']);
  5.  
  6. foreach ($html as $value) {
  7.     if (strpos(trim($value), "<div") === 0) {
  8.         $matches = preg_match_all('/(\s*(id|class)\s*=\s*"(\w+)")/', $value, $arr);
  9.  
  10.         if (in_array(trim($arr[3][0]), $semantic)) {
  11.             $returnValue = preg_replace('/(\s*?(id|class)\s*=\s*"(\w+)")\s*?/', '', $value);
  12.             $returnValue = preg_replace('/" >/', '">', $returnValue);
  13.             $returnValue = preg_replace('/ >/', '>', $returnValue);
  14.             $returnValue = preg_replace('/[\s+]{2,}/', ' ', $returnValue);
  15.            
  16.             $newTag = str_replace('<div', '<' . $arr[3][0], $returnValue);
  17.             echo $newTag . "\n";
  18.         } else {
  19.             echo $value . "\n";
  20.         }
  21.     } else if (strpos(trim($value), "</div>") === 0) {
  22.         $match = preg_match('/(<!--\s*)(main|header|nav|article|section|aside|footer)(\s*-->)/', $value, $arrET);
  23.  
  24.         if ($match !== 0) {
  25.             $val = preg_replace('/\s*(<!--\s*)(main|header|nav|article|section|aside|footer)(\s*-->)\s*/', null, $value);
  26.             echo str_replace('</div>', '</' . $arrET[2] . '>', $val) . "\n";
  27.         } else {
  28.             echo $value . "\n";
  29.         }
  30.     } else {
  31.         echo $value . "\n";
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement