Last active
August 29, 2015 14:18
-
-
Save MikeWilkie/f7981622f31ef54a0f28 to your computer and use it in GitHub Desktop.
Zend Filter for Class Names
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
/** | |
* | |
* Format Class Name | |
* | |
**/ | |
public function mwFormatClassName($string,$sep='-') { | |
$filterChain = new Zend_Filter(); | |
$filterChain->prependFilter(new Zend_Filter_StripTags()) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/&[a-z]+;/i','replace' => ''))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/æ/i', 'replace' => 'ae'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/à|á|â|ä|ã|å|ā/i', 'replace' => 'a'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ç|ć|č/i', 'replace' => 'c'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/è|é|ê|ë|ē|ė|ę/i', 'replace' => 'e'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/î|ï|í|ī|į|ì/i', 'replace' => 'i'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ñ|ń/i', 'replace' => 'n'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ł/i', 'replace' => 'l'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ô|ö|ò|ó|ø|ō|õ/i', 'replace' => 'o'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ś|š/i', 'replace' => 's'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ß/i', 'replace' => 'ss'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/û|ü|ù|ú|ū/i', 'replace' => 'u'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/ÿ/i', 'replace' => 'y'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/œ/i', 'replace' => 'oe'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Æ/i', 'replace' => 'AE'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/À|Á|Â|Ä|Ã|Å|Ā/i', 'replace' => 'A'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ç|Ć|Č/i', 'replace' => 'C'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/È|É|Ê|Ë|Ē|Ė|Ę/i', 'replace' => 'E'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Î|Ï|Í|Ī|Į|Ì/i', 'replace' => 'I'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ñ|Ń/i', 'replace' => 'N'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ł/i', 'replace' => 'L'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ô|Ö|Ò|Ó|Ø|Ō|Õ/i', 'replace' => 'O'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ś|Š/i', 'replace' => 'S'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Û|Ü|Ù|Ú|Ū/i', 'replace' => 'U'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Ÿ/i', 'replace' => 'Y'))) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/Œ/i', 'replace' => 'OE'))) | |
->appendFilter(new Zend_Filter_Alnum(array('allowwhitespace' => true))) | |
->appendFilter(new Zend_Filter_StringTrim()) | |
->appendFilter(new Zend_Filter_StringToLower()) | |
->appendFilter(new Zend_Filter_PregReplace(array('match' => '/\s+/i', 'replace' => $sep))); | |
return $filterChain->filter($string); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A function using Zend Framework's Zend_Filter to normalize text – perfect for creating permalinks or CSS classes from attribute labels and values.