Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zastąpić string innym stringiem i zachować wielkość liter w php i mysql?

Stworzyłem funkcję, która zastąpi dla Ciebie słowo i zachowa przypadki.

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

Uwaga:nie został przetestowany i może wymagać pewnych poprawek



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunkowe zapytanie agregujące z grupą według

  2. Użyj mysqldump do tworzenia kopii zapasowych MySQL lub MariaDB

  3. Zamów wybór na podstawie wyników łączenia (sortuj konwersacje w ostatniej wysłanej wiadomości)

  4. Zmniejszenie zużycia pamięci przez mysql na mikroinstancji chronionej przez pocztę e-mail

  5. Dlaczego ta pętla nie wyświetla zaktualizowanej liczby obiektów co pięć sekund?