Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите данни за продажбите за последните 3 месеца в MySQL

  2. Търсачката на думи Scrabble:изграждане на trie, съхраняване на trie, използване на trie?

  3. Mysql масивът не работи

  4. Кой е най-простият начин за съхраняване на данни от java програма в MySQL?

  5. Вземете записи с максимална стойност за всяка група групирани SQL резултати