Text.php
public static function safeString(string $str, string $delimiter = '-', bool $lowercase = false) : string
    {
        // Remove tags
        $str = filter_var($str, FILTER_SANITIZE_STRING);

        // Decode all entities to their simpler forms
        $str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');

        // Reserved characters (RFC 3986)
        $reserved_characters = array(
            '/', '?', ':', '@', '#', '[', ']',
            '!', '$', '&', '\'', '(', ')', '*',
            '+', ',', ';', '='
        );

        // Remove reserved characters
        $str = str_replace($reserved_characters, ' ', $str);

        // Set locale to en_US.UTF8
        setlocale(LC_ALL, 'en_US.UTF8');

        // Translit ua,ru => latin
        $str = Text::translitIt($str);

        // Convert string
        $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);

        // Remove characters
        $str = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
        if ($delimiter != null) {
            $str = preg_replace("/[\/_|+ -]+/", $delimiter, $str);
            $str = trim($str, $delimiter);
        }

        // Lowercase
        if ($lowercase === true) {
            $str = Text::lowercase($str);
        }

        // Return safe name
        return $str;
    }
public static function safeString(string $str, string $delimiter = '-', bool $lowercase = false) : string
    {
        // Remove tags
        $str = filter_var($str, FILTER_SANITIZE_STRING);

        // Decode all entities to their simpler forms
        $str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');

        // Reserved characters (RFC 3986)
        $reserved_characters = array(
            '/', '?', ':', '@', '#', '[', ']',
            '!', '$', '&', '\'', '(', ')', '*',
            '+', ',', ';', '='
        );

        // Remove reserved characters
        $str = str_replace($reserved_characters, ' ', $str);

        // Set locale to en_US.UTF8
        setlocale(LC_ALL, 'en_US.UTF8');

        // Translit ua,ru => latin
        $str = Text::translitIt($str);

        // Convert string
        $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);

        // Remove characters
        $str = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
        if ($delimiter != null) {
            $str = preg_replace("/[\/_|+ -]+/", $delimiter, $str);
            $str = trim($str, $delimiter);
        }

        // Lowercase
        if ($lowercase === true) {
            $str = Text::lowercase($str);
        }

        // Return safe name
        return $str;
    }
public static function safeString ( string $ str , string $ delimiter = '-' , bool $ lowercase = false ) : string { // Remove tags $ str = filter_var ( $ str , FILTER_SANITIZE_STRING ) ; // Decode all entities to their simpler forms $ str = html_entity_decode ( $ str , ENT_QUOTES , 'UTF-8' ) ; // Reserved characters (RFC 3986) $ reserved_characters = array ( '/' , '?' , ':' , '@' , '#' , '[' , ']' , '!' , '$' , '&' , '\'' , '(' , ')' , '*' , '+' , ',' , ';' , '=' ) ; // Remove reserved characters $ str = str_replace ( $ reserved_characters , ' ' , $ str ) ; // Set locale to en_US.UTF8 setlocale ( LC_ALL , 'en_US.UTF8' ) ; // Translit ua,ru => latin $ str = Text :: translitIt ( $ str ) ; // Convert string $ str = iconv ( 'UTF-8' , 'ASCII//TRANSLIT' , $ str ) ; // Remove characters $ str = preg_replace ( "/[^a-zA-Z0-9\/_|+ -]/" , '' , $ str ) ; if ( $ delimiter != null ) { $ str = preg_replace ( "/[\/_|+ -]+/" , $ delimiter , $ str ) ; $ str = trim ( $ str , $ delimiter ) ; } // Lowercase if ( $ lowercase === true ) { $ str = Text :: lowercase ( $ str ) ; } // Return safe name return $ str ; }
Create safe string. Use to create safe usernames or filenames.

$safe_string = Text::safeString('hello world');

@param  string   $str       String
@param  string   $delimiter String delimiter
@param  boolean  $lowercase String Lowercase
@return string
Create safe string . Use to create safe usernames or filenames .