php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #14117 Problems with ucwords(strtolower()) function
Submitted: 2001-11-19 10:45 UTC Modified: 2001-11-19 11:12 UTC
From: andregp at yahoo dot com Assigned:
Status: Not a bug Package: Strings related
PHP Version: 4.0.6 OS: Win98/Linux-Conectiva
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: andregp at yahoo dot com
New email:
PHP Version: OS:

 

 [2001-11-19 10:45 UTC] andregp at yahoo dot com
<html>
<body>
<?php 
   class texto {
      var $str1='',
          $str2='',
          $str3='';
   
   }
   
   $str= new texto();
   
   $str->str1='A??O';
   $str->str2=strtolower($str->str1);
   $str->str3=ucwords($str->str1);
   print("1:  $str->str1 <br>".
         "2:  $str->str2 <br>".
         "3:  $str->str3 <br>");
?>
</body>
</html>


Expected $str->str3 = 'A??o', but isn't what I get.
When I use this functions in strigs that are outside a object, this error don't happens.
In instance:
<?php
 $str1='A??O';
 $str2=strtolower($str1);
 $str3=ucwords($str2);
?>
// ---> THIS OK


* Sorry 'bout my poor english.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-11-19 10:48 UTC] sander@php.net
You should set the correct locale (see http://www.php.net/manual/en/function.setlocale.php)

If that's not the case, show us your output and tell us what you exactly expect.
 [2001-11-19 10:49 UTC] derick@php.net
Your script is buggy. You're using the original string (str1) to ucwords.
ucwords() will not lowercase any other letters.

Not a bug -> bogus
 [2001-11-19 10:50 UTC] jpm@php.net
Not a bug -> bogus.

But yeah, if you think thats not the case, please tell us what you would expect.
 [2001-11-19 10:59 UTC] andregp at yahoo dot com
<?php 
   class texto {
      var $str='';
   
   }
   
   $str= new texto();
   
   $str->str='A??O';
   $str->str=ucwords(strtolower($str->str));
   print("1:  $str->str ");
?>

This is what I get in Win98(with PWS) using the script above:
1: A??o 

And with the same script, this is what I get in Linux(with Apache):
1: A??o 

I expect:
1: A??o

What I do wrong?
 [2001-11-19 11:03 UTC] derick@php.net
Then it's a locale problem, check the url posted by sander.

Derick
 [2001-11-19 11:12 UTC] andregp at yahoo dot com
Thanks.

The setlocale('LC_ALL','pt_BR'); works in perfect way.

And sorry annoy you.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Dec 30 14:01:28 2024 UTC