sql >> データベース >  >> RDS >> Mysql

文字列を別の文字列に置き換えて、phpとmysqlで大文字と小文字を区別する方法は?

    単語を置き換えてケースを保持する関数を作成しました。

    function replaceWithCase($source, $replacement, $string) {
        // Does the string contain the source word?
        if (strpos($string, $source) === false) {
            return false;
        }
    
        // If everything is uppercase, return the replacement fully uppercase
        if (ctype_upper($source)) {
            return str_replace($source, strtoupper($replacement));
        }
    
        // Set an array to work with
        $characters = array();
    
        // Split the source into characters
        $sourceParts = explode('', $source);
    
        // Loop throug the characters and set the case
        foreach ($sourceParts as $k => $sp) {
            if (ctype_upper($sp)) {
                $characters[$k] = true;
            } else {
                $characters[$k] = false;
            }
        }
    
        // Split the replacement into characters
        $replacementParts = explode('', $replacement);
    
        // Loop through characters and compare their case type
        foreach ($replacementParts as $k => $rp) {
            if (array_key_exists($k, $characters) && $characters[$k] === true) {
                $newWord[] = strtoupper($rp);
            } else {
                $newWord[] = strtolower($rp);
            }
        }
    
        return substr_replace($source, implode('', $newWord), $string);
    }
    
    // usage
    echo replaceWithCase('AppLes', 'bananas', 'Comparing AppLes to pears');
    

    注:テストされていないため、微調整が必​​要な場合があります



    1. DBMSコンテキストでのBLOBとは正確には何ですか

    2. CakePHP 3-LocalStringFormatで日付を解析して、SQL形式を修正し、検証を修正します

    3. ExplainステートメントでのMySQLkey_lenの理解

    4. グループ化された文字列の集約/SQLServerのLISTAGG