sql >> Databáze >  >> RDS >> Mysql

Jak nahradit řetězec jiným řetězcem a zachovat případ v php a mysql?

Vytvořil jsem funkci, která slovo nahradí za vás a zachová případy.

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');

Poznámka:Není testován a může vyžadovat nějaké doladění



  1. Resetujte primární klíč PostgreSQL na 1

  2. Získejte aktuální přihlašovací ID na SQL Server (T-SQL)

  3. Jak provést příkaz IF v SQL?

  4. nelze vytvořit autoinkrementační primární klíč pomocí flask-sqlalchemy