public static function ucpPregReplace($pattern, $replace, $subject, $callback = false)
    {
        if ($callback) {
            $replaced = preg_replace_callback(
                $pattern,
                create_function('$matches', 'return ' . $replace . ';'),
                $subject
            );
        } else {
            $replaced = preg_replace($pattern, $replace, $subject);
        }

        // If preg_replace() returns false, this probably means unicode support is not built-in,
        // so we need to modify the pattern a little
        if ($replaced === false) {
            if (is_array($pattern)) {
                foreach ($pattern as $cur_key => $cur_pattern) {
                    $pattern[$cur_key] = str_replace('\p{L}\p{N}', '\w', $cur_pattern);
                }

                $replaced = preg_replace($pattern, $replace, $subject);
            } else {
                $replaced = preg_replace(str_replace('\p{L}\p{N}', '\w', $pattern), $replace, $subject);
            }
        }

        return $replaced;
    }
public static function ucpPregReplace($pattern, $replace, $subject, $callback = false)
    {
        if ($callback) {
            $replaced = preg_replace_callback(
                $pattern,
                create_function('$matches', 'return ' . $replace . ';'),
                $subject
            );
        } else {
            $replaced = preg_replace($pattern, $replace, $subject);
        }

        // If preg_replace() returns false, this probably means unicode support is not built-in,
        // so we need to modify the pattern a little
        if ($replaced === false) {
            if (is_array($pattern)) {
                foreach ($pattern as $cur_key => $cur_pattern) {
                    $pattern[$cur_key] = str_replace('\p{L}\p{N}', '\w', $cur_pattern);
                }

                $replaced = preg_replace($pattern, $replace, $subject);
            } else {
                $replaced = preg_replace(str_replace('\p{L}\p{N}', '\w', $pattern), $replace, $subject);
            }
        }

        return $replaced;
    }
public static function ucpPregReplace ( $ pattern , $ replace , $ subject , $ callback = false ) { if ( $ callback ) { $ replaced = preg_replace_callback ( $ pattern , create_function ( '$matches' , 'return ' . $ replace . ';' ) , $ subject ) ; } else { $ replaced = preg_replace ( $ pattern , $ replace , $ subject ) ; } // If preg_replace() returns false, this probably means unicode support is not built-in, // so we need to modify the pattern a little if ( $ replaced === false ) { if ( is_array ( $ pattern ) ) { foreach ( $ pattern as $ cur_key => $ cur_pattern ) { $ pattern [ $ cur_key ] = str_replace ( '\p{L}\p{N}' , '\w' , $ cur_pattern ) ; } $ replaced = preg_replace ( $ pattern , $ replace , $ subject ) ; } else { $ replaced = preg_replace ( str_replace ( '\p{L}\p{N}' , '\w' , $ pattern ) , $ replace , $ subject ) ; } } return $ replaced ; }
Replace string matching regular expression
This function takes care of possibly disabled unicode properties in PCRE builds
@param $pattern
@param $replace
@param $subject
@param bool $callback
@return mixed
Replace string matching regular expression This function takes care of possibly disabled unicode properties in PCRE builds