strtoupper

(PHP 4, PHP 5)

strtoupper — Преобразует строку в верхний регистр

Описание

string strtoupper ( string $string )

Возвращает строку string , в которой все буквенные символы переведены в верхний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ Ä не будет преобразован.

Пример #1 Пример использования strtoupper()

<?php
$str 
"Mary Had A Little Lamb and She LOVED It So";
$str strtoupper($str);
echo 
$str// выводит: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций strtolower(), ucfirst(), ucwords() and mb_strtoupper().

Коментарии

something I myself first not thought about:
if there are any html entities (named entities) in your string, strtoupper will turn all letters within this entities to upper case, too. So if you want to manipulate a string with strtoupper it should contain only unicode entities (if ever).
2002-12-02 08:54:33
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
If you only need to extend the conversion by the characters of a certain language, it's possible to control this using an environment variable to change the locale:

setlocale(LC_CTYPE, "de_DE");
2004-10-30 18:23:18
http://php5.kiev.ua/manual/ru/function.strtoupper.html
chinese

function to_upper($string) {
  $new_string = "";
  $i = 0;
  while($i < strlen($string)) {
   if (ord(substr($string,$i,1)) <128)
   {
     $new_string .= strtoupper(substr($string,$i,1));
     $i++;
   } else {
     $new_string .= substr($string,$i,2);
     $i=$i+2;
   }
  }
  return $new_string;
}
2005-05-25 00:31:39
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
// 2005/5/30 Justin
    // Chinese_Traditional toupper
    function CT_to_upper($string)
    {       
        $isChineseStart = false;
       
          $new_string = "";
         $i = 0;
          while($i < strlen($string))
          {                   
               if (ord(substr($string,$i,1)) <128)
               {
                   if( $isChineseStart == false )
                       $new_string .= strtoupper(mb_substr($string,$i,1));
                   else       
                       $new_string .= substr($string,$i,1);
               }
               else
               {
                   if( $isChineseStart == false )
                       $isChineseStart = true;
                   else
                       $isChineseStart = false;                       
                     
                     $new_string .= substr($string,$i,1);
               }
               $i++;
          }
          return $new_string;         
    } 
    //
2005-05-30 09:11:25
http://php5.kiev.ua/manual/ru/function.strtoupper.html
When using UTF-8 and need to convert to uppercase with 
special characters like the german ä,ö,ü (didn't test for french,polish,russian but think it should work, too) try this:

function strtoupper_utf8($string){
    $string=utf8_decode($string);
    $string=strtoupper($string);
    $string=utf8_encode($string);
    return $string;
}
2006-05-10 07:31:01
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
Russian

function str_to_upper($str){
    return strtr($str, 
    "abcdefghijklmnopqrstuvwxyz".
    "\xE0\xE1\xE2\xE3\xE4\xE5".
    "\xb8\xe6\xe7\xe8\xe9\xea".
    "\xeb\xeC\xeD\xeE\xeF\xf0".
    "\xf1\xf2\xf3\xf4\xf5\xf6".
    "\xf7\xf8\xf9\xfA\xfB\xfC".
    "\xfD\xfE\xfF",
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
    "\xC0\xC1\xC2\xC3\xC4\xC5".
    "\xA8\xC6\xC7\xC8\xC9\xCA".
    "\xCB\xCC\xCD\xCE\xCF\xD0".
    "\xD1\xD2\xD3\xD4\xD5\xD6".
    "\xD7\xD8\xD9\xDA\xDB\xDC".
    "\xDD\xDE\xDF");
}
2007-04-17 20:33:35
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
accents convertion trick :

<?php
       
   
function ucfirstHTMLentity($matches){
        return 
"&".ucfirst(strtolower($matches[1])).";";
    }
    function 
fullUpper($str){
       
$subject strtoupper(htmlentities($strnull'UTF-8'));
       
$pattern '/&([A-Z]+);/';
        return 
preg_replace_callback($pattern"ucfirstHTMLentity"$subject);
    }

        print 
fullUpper($_REQUEST["txt"]);
   
?>
2007-10-11 10:20:53
http://php5.kiev.ua/manual/ru/function.strtoupper.html
It has been mentioned in a previous comment that all you need to do to let PHP's strtoupper() do the conversion - instead of writing more or less complicated functions yourself - is to specify the locale in which you're doing the case conversion:

<?php setlocale(LC_CTYPE"de_AT"?>

It is important to note that setlocale() will silently fail if it can't find the specified locale on your system, so *always* check its return value. Try different spellings: using "de_AT" as an example, there are various combinations that may or may not work for you: "de", "de_AT.utf8", "de_AT.iso-8859-1", "de_AT.latin1", "de_AT@euro", etc).

If you can't find an appropriate locale setting, check your system configuration (locales are a system-wide setting, PHP gets them from the OS). On Windows, locales can be set from the Control Panel; on Linux it depends on your distribution. You can try "sudo dpkg-reconfigure locales" on Debian-based distros, or configure them manually. On Ubuntu Dapper, I had to copy entries over from /usr/share/i18n/SUPPORTED to /var/lib/locales/supported.d/local, then do the dpkg-reconfigure.

After you're done, restart the web server.

That said, there are special cases where you want to do the conversion manually. In German, for example, the letter 'ß' (szlig) only exists as a lower-case character, and so doesn't get converted by strtoupper. The convential way to express a 'ß' in an uppercase string is "SS". This function will take care of this exception (for Latin1 and most of Latin9, at least):

<?php

define
("LATIN1_UC_CHARS""ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ");
define("LATIN1_LC_CHARS""àáâãäåæçèéêëìíîïðñòóôõöøùúûüý");

function 
uc_latin1 ($str) {
   
$str strtoupper(strtr($strLATIN1_LC_CHARSLATIN1_UC_CHARS));
    return 
strtr($str, array("ß" => "SS"));
}

?>
2008-04-17 12:59:56
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Simple function to change the case of your string and any accented html characters contained within it. 

Inspired by fullUpper(), by silent at gmx dot li... just a little bit more atomic.

<?php

function convertCase($str$case 'upper')
//yours, courtesy of table4.com  :)
 
switch($case)
  {
    case 
"upper" :
    default:
     
$str strtoupper($str);
     
$pattern '/&([A-Z])(UML|ACUTE|CIRC|TILDE|RING|';
     
$pattern .= 'ELIG|GRAVE|SLASH|HORN|CEDIL|TH);/e';
     
$replace "'&'.'\\1'.strtolower('\\2').';'"//convert the important bit back to lower
   
break;
   
    case 
"lower" :
     
$str strtolower($str);
    break;
  }
 
 
$str preg_replace($pattern$replace$str);
  return 
$str;
}
?>

Depending on what you are trying to achieve you would call like this:

<?php

//with entities...
$str convertCase(htmlentities($strENT_QUOTES"ISO-8859-1"));

?>
2009-01-19 09:31:08
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
perfect solutions for turkish utf-8 (including i I conversations):

<?php
function strtolowertr($metin){
    return 
mb_convert_case(str_replace('I','ı',$metin), MB_CASE_LOWER"UTF-8");
}

function 
strtouppertr($metin){
    return 
mb_convert_case(str_replace('i','İ',$metin), MB_CASE_UPPER"UTF-8");
}

function 
ucwordstr($metin) {
    return 
ltrim(mb_convert_case(str_replace(array(' I',' ı'' İ'' i'),array(' I',' I',' İ',' İ'),' '.$metin), MB_CASE_TITLE"UTF-8"));
}

function 
ucfirsttr($metin) {
   
$metin in_array(crc32($metin[0]),array(1309403428, -797999993957143474)) ? array(strtouppertr(substr($metin,0,2)),substr($metin,2)) : array(strtouppertr($metin[0]),substr($metin,1));
return 
$metin[0].$metin[1];
}
?>
2010-05-01 19:39:39
http://php5.kiev.ua/manual/ru/function.strtoupper.html
In the Irish language certain initial mutations can never be capitalized — the following simple function can be used to capitalize text in Irish.

i.e. Muintir na hÉireann -> MUINTIR NA hÉIREANN

<?php
function strtoupper_ga($a) {
    return 
strtr(mb_strtoupper($a"utf-8"), array(
     
" MB" => " mB"
     
" GC" => " gC"
     
" ND" => " nD"
     
" BHF" => " bhF"
     
" NG" => " nG"
     
" BP" => " bP"
     
" DT" => " dT"
     
" HA" => " hA",
     
" HE" => " hE",
     
" HI" => " hI",
     
" HO" => " hO",
     
" HU" => " hU",
     
" HÁ" => " hÁ",
     
" HÉ" => " hÉ",
     
" HÍ" => " hÍ",
     
" HÓ" => " hÓ",
     
" HÚ" => " hÚ"
   
));
}
?>
2011-11-10 08:44:06
http://php5.kiev.ua/manual/ru/function.strtoupper.html
One might think that setting the correct locale would do the trick with for example german umlauts, but this is not the case. You have to use mb_strtoupper() instead:

<?php

setlocale
(LC_CTYPE'de_DE.UTF8');

echo 
strtoupper('Umlaute äöü in uppercase'); // outputs "UMLAUTE äöü IN UPPERCASE"
echo mb_strtoupper('Umlaute äöü in uppercase''UTF-8'); // outputs "UMLAUTE ÄÖÜ IN UPPERCASE"

?>
2013-06-10 11:28:03
http://php5.kiev.ua/manual/ru/function.strtoupper.html
$ther=''.THEREISALREADYA.' '.CONCEPT.' '.SAVED.' ';
or
$ther="There Is all ready A concept SAVED";

$fupper=substr("$ther",0,1);
pick the first char

$theru = strtoupper($fupper);
make it upper 

$flower=substr("$ther",1,100);
pick the rest

$therl = strtolower($flower);
make them lower

Result:
There is all ready a concept saved
2015-07-28 14:51:04
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Here is how to make the character in upper case, except HTML-entities:

$s = substr(preg_replace('/(?<=^|;)(.+?)(?=&[0-9A-Za-z]+;|$)/e', "strtoupper('$1')", ' '.$s), 1);

There is small kludge, however. Unfortunately I tired to find out the way how to exclude HTML-entity at the start of the line, so I have added 1 dummy character at the start of the text and removing it after the conversion.
2016-07-10 01:36:44
http://php5.kiev.ua/manual/ru/function.strtoupper.html
Автор:
Why this function isn't just named "uppercase" or has an alias named that, I don't know.
2018-01-24 21:55:06
http://php5.kiev.ua/manual/ru/function.strtoupper.html
This function has a real challenge when it comes to Turkish. In Turkish the ASCII letter 'i' uppercases to a non-ASCII character. This means that PHP cannot upper case it.

i.e. for the Turkish locale, strtoupper('i')=='i'

This can mess with basic program logic.

There's no simple solution. The core problem is discussed more here:
http://www.i18nguy.com/unicode/turkish-i18n.html
2019-07-28 16:08:37
http://php5.kiev.ua/manual/ru/function.strtoupper.html

    Поддержать сайт на родительском проекте КГБ