Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@MikeWilkie
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MikeWilkie/f7981622f31ef54a0f28 to your computer and use it in GitHub Desktop.
Save MikeWilkie/f7981622f31ef54a0f28 to your computer and use it in GitHub Desktop.
Zend Filter for Class Names
/**
*
* 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);
}
@MikeWilkie
Copy link
Author

A function using Zend Framework's Zend_Filter to normalize text – perfect for creating permalinks or CSS classes from attribute labels and values.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment