note 116631 added to function.preg-replace
| From: | Jeroen | Date: | Sun, 01 Feb 2015 01:25:49 +0000 |
| Subject: | note 116631 added to function.preg-replace | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-201571@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....
(NOTE:
For the webmaster sorry I posted this in the wrong topic before...)
----
Server IP: 72.52.91.14
Probable Submitter: 94.209.152.114
----
Manual Page -- http://php.net/manual/en/function.preg-replace.php
Edit -- https://master.php.net/note/edit/116631
Del: integrated -- https://master.php.net/note/delete/116631/integrated
Del: useless -- https://master.php.net/note/delete/116631/useless
Del: bad code -- https://master.php.net/note/delete/116631/bad+code
Del: spam -- https://master.php.net/note/delete/116631/spam
Del: non-english -- https://master.php.net/note/delete/116631/non-english
Del: in docs -- https://master.php.net/note/delete/116631/in+docs
Del: other reasons-- https://master.php.net/note/delete/116631
Reject -- https://master.php.net/note/reject/116631
Search -- https://master.php.net/manage/user-notes.php