note 116630 added to function.php-strip-whitespace

From: Date: Sun, 01 Feb 2015 01:10:30 +0000
Subject: note 116630 added to function.php-strip-whitespace
Groups: php.notes 
Request: Send a blank email to php-notes+get-201570@lists.php.net to get a copy of this message
Hello there, I would like to share a regex (PHP) sniplet of code I wrote (2012) for myself it is also being used in the Yerico sriptmerge plugin for joomla marked as simple code.. To compress javascript code and remove all comments from it. It also works with mootools It is fast (in compairison to other PHP solutions) and does not damage the Javascript it self and it resolves lots of comment removal isseus. //START Remove comments. $buffer = str_replace('/// ', '///', $buffer); $buffer = str_replace(',//', ', //', $buffer); $buffer = str_replace('{//', '{ //', $buffer); $buffer = str_replace('}//', '} //', $buffer); $buffer = str_replace('*//*', '*/ /*', $buffer); $buffer = str_replace('/**/', '/* */', $buffer); $buffer = str_replace('*///', '*/ //', $buffer); $buffer = preg_replace("/\/\/.*\n\/\/.*\n/", "", $buffer); $buffer = preg_replace("/\s\/\/\".*/", "", $buffer); $buffer = preg_replace("/\/\/\n/", "\n", $buffer); $buffer = preg_replace("/\/\/\s.*.\n/", "\n \n", $buffer); $buffer = preg_replace('/\/\/w[^w].*/', '', $buffer); $buffer = preg_replace('/\/\/s[^s].*/', '', $buffer); $buffer = preg_replace('/\/\/\*\*\*.*/', '', $buffer); $buffer = preg_replace('/\/\/\*\s\*\s\*.*/', '', $buffer); $buffer = preg_replace('/[^\*]\/\/[*].*/', '', $buffer); $buffer = preg_replace('/([;])\/\/.*/', '$1', $buffer); $buffer = preg_replace('/((\r)|(\n)|(\R)|([^0]1)|([^\"]\s*\-))(\/\/)(.*)/', '$1', $buffer); $buffer = preg_replace("/([^\*])[\/]+\/\*.*[^a-zA-Z0-9\s\-=+\|!@#$%^&()`~\[\]{};:\'\",<.>?]/", "$1", $buffer); $buffer = preg_replace("/\/\*/", "\n/*dddpp", $buffer); $buffer = preg_replace('/((\{\s*|:\s*)[\"\']\s*)(([^\{\};\"\']*)dddpp)/','$1$4', $buffer); $buffer = preg_replace("/\*\//", "xxxpp*/\n", $buffer); $buffer = preg_replace('/((\{\s*|:\s*|\[\s*)[\"\']\s*)(([^\};\"\']*)xxxpp)/','$1$4', $buffer); $buffer = preg_replace('/([\"\'])\s*\/\*/', '$1/*', $buffer); $buffer = preg_replace('/(\n)[^\'"]?\/\*dddpp.*?xxxpp\*\//s', '', $buffer); $buffer = preg_replace('/\n\/\*dddpp([^\s]*)/', '$1', $buffer); $buffer = preg_replace('/xxxpp\*\/\n([^\s]*)/', '*/$1', $buffer); $buffer = preg_replace('/xxxpp\*\/\n([\"])/', '$1', $buffer); $buffer = preg_replace('/(\*)\n*\s*(\/\*)\s*/', '$1$2$3', $buffer); $buffer = preg_replace('/(\*\/)\s*(\")/', '$1$2', $buffer); $buffer = preg_replace('/\/\*dddpp(\s*)/', '/*', $buffer); $buffer = preg_replace('/\n\s*\n/', "\n", $buffer); $buffer = preg_replace("/([^\'\"]\s*)<!--.*-->(?!(<\/div>)).*/","$1", $buffer); $buffer = preg_replace('/([^\n\w\-=+\|!@#$%^&*()`~\[\]{};:\'",<.>\/?\\\\])(\/\/)(.*)/', '$1', $buffer); //END Remove comments. //START Remove all whitespaces $buffer = preg_replace('/\s+/', ' ', $buffer); $buffer = preg_replace('/\s*(?:(?=[=\-\+\|%&\*\)\[\]\{\};:\,\.\<\>\!\@\#\^`~]))/', '', $buffer); $buffer = preg_replace('/(?:(?<=[=\-\+\|%&\*\)\[\]\{\};:\,\.\<\>\?\!\@\#\^`~]))\s*/', '', $buffer); $buffer = preg_replace('/([^a-zA-Z0-9\s\-=+\|!@#$%^&*()`~\[\] {};:\'",<.>\/?])\s+([^a-zA-Z0-9\s\-=+\|!@#$%^&*()`~\[\] {};:\'",<.>\/?])/', '$1$2', $buffer); //END Remove all whitespaces I am off coarse not a programmer just wanted to make the plugin work like i wanted it to.... ---- Server IP: 72.52.91.14 Probable Submitter: 94.209.152.114 ---- Manual Page -- http://php.net/manual/en/function.php-strip-whitespace.php Edit -- https://master.php.net/note/edit/116630 Del: integrated -- https://master.php.net/note/delete/116630/integrated Del: useless -- https://master.php.net/note/delete/116630/useless Del: bad code -- https://master.php.net/note/delete/116630/bad+code Del: spam -- https://master.php.net/note/delete/116630/spam Del: non-english -- https://master.php.net/note/delete/116630/non-english Del: in docs -- https://master.php.net/note/delete/116630/in+docs Del: other reasons-- https://master.php.net/note/delete/116630 Reject -- https://master.php.net/note/reject/116630 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#201570) next »