box-o-sand/docroot/html/libs/plugins/modifier.capitalize.php

37 lines
984 B
PHP
Raw Normal View History

2011-01-01 18:51:50 +00:00
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty capitalize modifier plugin
*
* Type: modifier<br>
* Name: capitalize<br>
* Purpose: capitalize words in the string
*
* @link
* @author Monte Ohrt <monte at ohrt dot com>
* @param string $
* @return string
*/
function smarty_modifier_capitalize($string, $uc_digits = false)
{
// uppercase with php function ucwords
$upper_string = ucwords($string);
// check for any missed hyphenated words
$upper_string = preg_replace("!(^|[^\p{L}'])([\p{Ll}])!ue", "'\\1'.ucfirst('\\2')", $upper_string);
// check uc_digits case
if (!$uc_digits) {
if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!u", $string, $matches, PREG_OFFSET_CAPTURE)) {
foreach($matches[1] as $match)
$upper_string = substr_replace($upper_string, $match[0], $match[1], strlen($match[0]));
}
}
return $upper_string;
}
?>