- preg_replace_callback: documentation ( source)
- function_exists: documentation ( source)
- mb_strtolower: documentation ( source)
- strtolower: documentation ( source)
- sprintf: documentation ( source)
<?php
class Drive_Filter_NormalizeName // implements Zend_Filter_Interface
{
protected function _replace(array $match)
{
return sprintf("%012d%s", $match[1], isset($match[2]) ? $match[2] : '');
}
public function filter($name)
{
if (function_exists('mb_strtolower')) {
$name = mb_strtolower($name);
} else {
$name = strtolower($name);
}
$name = preg_replace_callback('/(\d+)([.,]\d+)?/', array($this, '_replace'), $name);
return $name;
}
}
$filter = new Drive_Filter_NormalizeName;
echo $filter->filter('Dupa5_5.23_DÓpa3');