PHP.mk документација

strtoupper

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.strtoupper.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.strtoupper.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
strtoupper

Референца за `function.strtoupper.php` со подобрена типографија и навигација.

function.strtoupper.php

strtoupper

(PHP 4, PHP 5, PHP 7, PHP 8)

strtoupperНаправи стринг со големи букви

= NULL

strtoupper(string $string): string

Патеката до PHP скриптата што треба да се провери. string со сите ASCII букви претворени во големи.

Бајтови во опсег "a" со големи букви, ако тој знак е ASCII знак во опсег од "z" (0x7a) ќе биде претворено во соодветната голема буква со одземање 32 од вредноста на секој бајт.

Ова може да се користи за конвертирање на ASCII знаци во низи кодирани со UTF-8, бидејќи повеќебајтните UTF-8 знаци ќе бидат игнорирани. За да конвертирате повеќебајтни не-ASCII знаци, користете mb_strtoupper().

Параметри

string

, и враќа стринг со првиот карактер од

Вратени вредности

Враќа стринг со големи букви.

Дневник на промени

Верзија = NULL
8.2.0 Конверзијата на големината веќе не зависи од локалот поставен со setlocale(). Само ASCII знаците ќе бидат претворени.

Примери

Пример #1 strtoupper() example

<?php
$str
= "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo
$str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Белешки

Забелешка: Пример #4 Користење на контексти на потоци

Види Исто така

  • strtolower() - Направи стринг со мали букви
  • ucfirst() - Изврши преклопување на случај на стринг
  • ucwords() - Го прави првиот знак од секој збор во низата со големи букви
  • mb_strtoupper() - Направи стринг со големи букви

Белешки од корисници 14 белешки

andre на koethur точка de
12 години пред
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"

?>
mec at stadeleck dot org
пред 23 години
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).
Анонимен
21 години пред
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");
spaceman at foo dot at
пред 17 години
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($str, LATIN1_LC_CHARS, LATIN1_UC_CHARS));
    return strtr($str, array("ß" => "SS"));
}

?>
james at snasta dot ie
пред 14 години
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Ú"
    ));
}
?>
uilmind at favor.com.ua
пред 9 години
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.
bart at insane dot at
19 години пред
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;
}
Анонимен
20 години пред
// 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;          
    } 
    //
smieat
пред 15 години
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, -797999993, 957143474)) ? array(strtouppertr(substr($metin,0,2)),substr($metin,2)) : array(strtouppertr($metin[0]),substr($metin,1));
return $metin[0].$metin[1];
}
?>
chris at table4 dot com
пред 17 години
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($str, ENT_QUOTES, "ISO-8859-1"));

?>
RUNET
пред 18 години
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");
}
adriaanse06 at hotmail dot com
пред 10 години
$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
chris на ocproducts dot com
пред 6 години
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
willyann at gmail dot com
20 години пред
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;
}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.