jesobreira

Make code a mess

Dec 21st, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.60 KB | None | 0 0
  1. This code is to make the output HTML code from PHP a mess - as Facebook or Google do.
  2. <?php
  3. ob_start(); // before any output
  4.  
  5. // page content goes here
  6.  
  7. $content = ob_get_clean();
  8. echo MinifyHTML($content);
  9.  
  10. ?>
  11.  
  12. This is the function:
  13. <?php
  14. function MinifyHTML($str) {
  15. $protected_parts = array('<pre>,</pre>','<textarea>,</textarea>', '<,>');
  16. $extracted_values = array();
  17. $i = 0;
  18. foreach ($protected_parts as $part) {
  19.     $finished = false;
  20.     $search_offset = $first_offset = 0;
  21.     $end_offset = 1;
  22.     $startend = explode(',', $part);
  23.     if (count($startend) === 1) $startend[1] = $startend[0];
  24.     $len0 = strlen($startend[0]); $len1 = strlen($startend[1]);
  25.     while ($finished === false) {
  26.         $first_offset = strpos($str, $startend[0], $search_offset);
  27.  
  28.         if ($first_offset === false) $finished = true;
  29.         else {
  30.             $search_offset = strpos($str, $startend[1], $first_offset + $len0);
  31.             $extracted_values[$i] = substr($str, $first_offset + $len0, $search_offset - $first_offset - $len0);
  32.             $str = substr($str, 0, $first_offset + $len0).'$$#'.$i.'$$'.substr($str, $search_offset);
  33.             $search_offset += $len1 + strlen((string)$i) + 5 - strlen($extracted_values[$i]);
  34.             ++$i;
  35.         }
  36.     }
  37. }
  38. $str = preg_replace("/\s/", " ", $str);
  39. $str = preg_replace("/\s{2,}/", " ", $str);
  40. $replace = array('> <'=>'><', ' >'=>'>','< '=>'<','</ '=>'</');
  41. $str = str_replace(array_keys($replace), array_values($replace), $str);
  42.  
  43. for ($d = 0; $d < $i; ++$d)
  44.     $str = str_replace('$$#'.$d.'$$', $extracted_values[$d], $str);
  45.  
  46. return $str;
  47. }
Add Comment
Please, Sign In to add comment