strtoupper 


string apg

TRANSFORMS all alphabetic characters of a given STRING into UPPERCASE.

Some characters, especially those accented, may not be properly converted.





This function, as expected, has no effect on non-alphabetic characters.

Note that accented characters are not properly converted to lowercase.

This means that texts in languages other than English may have conversion difficulties; as long as they have uppercase and lowercase characters.

Using the mb_strtoupper function solves the problem.

This will be seen at the specific time, in another chapter of this tutorial.



<?php

str strtoupper 
str $str )


where,

$str STRING to be converted to UPPERCASE

?>

$str


The STRING to be converted to UPPERCASE.



  1 EXERCISE   

<?php

$st01 
"Time is money. (Let's up-to-date?)";

echo 
'Original STRING:<br>' $st01 
         
'<br><br>UPPERCASE:<br>' strtoupper($st01);

?> 

 RESULT   

Original STRING:
Time is money. (Let's up-to-date?)

UPPERCASE:
TIME IS MONEY. (LET'S UP-TO-DATE?)


  2 EXERCISE   

<?php

$st02 
"Love's not time's fool, though rosy lips and cheeks 
within his bending sickle's compass come; or bends 
with the remover to remove. Let me not to the marriage 
of true minds if this be error and upon me proved, oh, no, 
it is an ever fixed mark. Which alters when it alteration 
finds, it is the star to every  wand'ring bark, 
admit impediments; love is not love."
;

echo 
'Original STRING:<br>' $st02 
       
'<br><br>UPPERCASE:<br>' strtoupper($st02);

?> 

 RESULT   

Original STRING:
Love's not time's fool, though rosy lips and cheeks within his bending sickle's compass come; or bends with the remover to remove. Let me not to the marriage of true minds if this be error and upon me proved, oh, no, it is an ever fixed mark. Which alters when it alteration finds, it is the star to every wand'ring bark, admit impediments; love is not love.

UPPERCASE:
LOVE'S NOT TIME'S FOOL, THOUGH ROSY LIPS AND CHEEKS WITHIN HIS BENDING SICKLE'S COMPASS COME; OR BENDS WITH THE REMOVER TO REMOVE. LET ME NOT TO THE MARRIAGE OF TRUE MINDS IF THIS BE ERROR AND UPON ME PROVED, OH, NO, IT IS AN EVER FIXED MARK. WHICH ALTERS WHEN IT ALTERATION FINDS, IT IS THE STAR TO EVERY WAND'RING BARK, ADMIT IMPEDIMENTS; LOVE IS NOT LOVE.



  3 EXERCISE   

<?php

$fl03 
'* O conteúdo desenvolvido por este tutorial 
é apresentado "no estado", devendo ser considerado, 
somente, para propósitos educacionais e, 
sem nenhum outro comprometimento ou garantia 
adicional.<br>
* Todo material é livre para uso, inclusive para 
emprego comercial, exceto com relação às fotografias 
e às músicas - as quais - não poderão ser usadas 
sob qualquer pretexto.<br>
* Não caberá aos autores, nenhuma responsabilidade
 pelo uso apropriado ou inapropriado de todo o conteúdo 
 distribuído livremente.<br>
* Cabe a cada usuário, em particular, decidir 
sobre sua aplicabilidade.<br>
* O conteúdo mostrado poderá sofrer alterações ou 
modificações, simples ou radicais, 
sem prévio aviso.'
;

echo 
'Original STRING:<br>' $fl03 
           
'<br><br>UPPERCASE:<br>' strtoupper($fl03);

?> 

 RESULT   

Original STRING:
* O conteúdo desenvolvido por este tutorial é apresentado "no estado", devendo ser considerado, somente, para propósitos educacionais e, sem nenhum outro comprometimento ou garantia adicional.
* Todo material é livre para uso, inclusive para emprego comercial, exceto com relação às fotografias e às músicas - as quais - não poderão ser usadas sob qualquer pretexto.
* Não caberá aos autores, nenhuma responsabilidade pelo uso apropriado ou inapropriado de todo o conteúdo distribuído livremente.
* Cabe a cada usuário, em particular, decidir sobre sua aplicabilidade.
* O conteúdo mostrado poderá sofrer alterações ou modificações, simples ou radicais, sem prévio aviso.

UPPERCASE:
* O CONTEúDO DESENVOLVIDO POR ESTE TUTORIAL é APRESENTADO "NO ESTADO", DEVENDO SER CONSIDERADO, SOMENTE, PARA PROPóSITOS EDUCACIONAIS E, SEM NENHUM OUTRO COMPROMETIMENTO OU GARANTIA ADICIONAL.
* TODO MATERIAL é LIVRE PARA USO, INCLUSIVE PARA EMPREGO COMERCIAL, EXCETO COM RELAçãO àS FOTOGRAFIAS E àS MúSICAS - AS QUAIS - NãO PODERãO SER USADAS SOB QUALQUER PRETEXTO.
* NãO CABERá AOS AUTORES, NENHUMA RESPONSABILIDADE PELO USO APROPRIADO OU INAPROPRIADO DE TODO O CONTEúDO DISTRIBUíDO LIVREMENTE.
* CABE A CADA USUáRIO, EM PARTICULAR, DECIDIR SOBRE SUA APLICABILIDADE. * O CONTEúDO MOSTRADO PODERá SOFRER ALTERAçõES OU MODIFICAçõES, SIMPLES OU RADICAIS, SEM PRéVIO AVISO.


Note that accented characters are not properly converted to lowercase.
This means that texts in languages other than English may have conversion difficulties.

Using the mb_strtoupper function this situation will be solved, which will be seen soon in the special chapter of this tutorial.



  4 EXERCISE   

<?php

if( substr(PHP_OS03) == 'WIN') {
  if (!
setlocale(LC_ALL'C')) {
    die(
'skip need "C" locale (this windows is broken)');
  }
} else {
  if (!
setlocale(LC_ALL'en_US.UTF-8''en')) {
    die(
'skip need "en_US.UTF-8" locale');
  }
}

if( 
substr(PHP_OS03) == 'WIN') {
  
setlocale(LC_ALL'C');
} else {
  
setlocale(LC_ALL'en_US.UTF-8');
}

echo 
"Testing strtoupper() with 128 chars:<br>";
for (
$i=0$i<=127$i++){
  
$char chr($i);
  print(
bin2hex($char))." => ".(bin2hex(strtoupper("$char")))."<br>";
}

echo 
"<br><br>Testing strtoupper() with basic strings:<br>";
$str "Mary Had A liTTle LAmb and ShE loveD IT So\n";
var_dump(strtoupper($str));

echo 
"<br><br>Testing strtoupper() with various strings:<br>";
/* strings to pass strtoupper() */
$strings = array (
  
"",
  
"string",
  
"stRINg0234",
  
"1.233.344StrinG12333",
  
"$$$$$$!!!!@@@@@@@ ABCDEF !!!***",
  
"ABCD\0abcdABCD",
  
NULL,
  
TRUE,
  
FALSE,
);

$count 0;
/* loop through to check possible variations */
foreach ($strings as $string) {
  echo 
"<br><br>Iteration: $count<br>";
  
var_dumpstrtoupper($string) );
  
$count++;
}

echo 
"<br><br>Testing strtoupper() with 
                       two different case strings:<br>"
;
if (
strtoupper("HeLLo woRLd") === strtoupper("hEllo WORLD"))
  echo 
"strings are same, with Case Insensitive\n";
else
  echo 
"strings are not same\n";

?>

  5 EXERCISE   

<?php

if( substr(PHP_OS03) == 'WIN') {
  if (!
setlocale(LC_ALL'C')) {
    die(
'skip need "C" locale (this windows is broken)');
  }
} else {
  if (!
setlocale(LC_ALL'en_US.UTF-8''en')) {
    die(
'skip need "en_US.UTF-8" locale');
  }
}

if( 
substr(PHP_OS03) == 'WIN') {
  
setlocale(LC_ALL'C');
} else {
  
setlocale(LC_ALL'en_US.UTF-8');
}

echo 
"Testing strtoupper() with 128 chars:<br>";
for (
$i=0$i<=127$i++){
  
$char chr($i);
  print(
bin2hex($char))." => ".(bin2hex(strtoupper("$char")))."<br>";
}

echo 
"<br><br>Testing strlower() with basic strings:<br>";
$str "Mary Had A liTTle LAmb and ShE loveD IT So\n";
var_dump(strtoupper($str));

echo 
"<br><br>Testing strtoupper() with various strings:<br>";
/* strings to pass strtoupper() */
$strings = array (
  
"",
  
"string",
  
"stRINg0234",
  
"1.233.344StrinG12333",
  
"$$$$$$!!!!@@@@@@@ ABCDEF !!!***",
  
"ABCD\0abcdABCD",
  
NULL,
  
TRUE,
  
FALSE,
);

$count 0;
/* loop through to check possible variations */
foreach ($strings as $string) {
  echo 
"<br><br>Iteration: $count<br>";
  
var_dumpstrtoupper($string) );
  
$count++;
}

echo 
"<br><br>Testing strtoupper() with two 
                        different case strings:<br>"
;
if (
strtoupper("HeLLo woRLd") === strtoupper("hEllo WORLD"))
  echo 
"strings are same, with Case Insensitive\n";
else
  echo 
"strings are not same\n";

?>

  6 EXERCISE   

<?php

if (!setlocale(LC_CTYPE"de_DE"
                                    
"de""german"
                                    
"ge""de_DE.ISO8859-1"
                                    
"ISO8859-1")) {
        die(
"skip locale needed for this 
                        test is not supported on this platform"
);
}

$chars "הצ";
// Not sure which is most portable. BSD's answer to
// this one. A small array based on PHP_OS should
// cover a majority of systems and makes the problem
// of locales transparent for the end user.
setlocale(LC_CTYPE"de_DE""de""german"
                              
"ge""de_DE.ISO8859-1"
                              
"ISO8859-1");

echo 
strtoupper($chars)."\n";

?>