PHP:
Converting a string to lower case
How to:
PHP uses strtolower
to make all characters in a string lower case. Here’s how it works:
<?php
$originalString = "HeLLo WoRLD!";
$lowerCaseString = strtolower($originalString);
echo $lowerCaseString; // Outputs: hello world!
?>
If you need to handle multibyte character encodings, like UTF-8, use mb_strtolower
instead:
<?php
$originalString = "İstanbul";
$lowerCaseString = mb_strtolower($originalString, 'UTF-8');
echo $lowerCaseString; // Outputs: istanbul (correctly converts İ to i)
?>
Deep Dive
Historically, PHP’s strtolower
function has been the go-to function for case conversion, introduced in very early versions of PHP. However, as PHP applications became more global, the need to correctly handle multibyte character encodings brought about mb_strtolower
.
Alternatives to strtolower
and mb_strtolower
include using regular expressions with the mb_ereg_replace_callback
function or preg_replace_callback
, but for simple case conversion, they are overkill.
In PHP, strings have traditionally been byte-based, not character-based, meaning each byte is one character. This works for single-byte encodings like ASCII, where each character indeed is one byte. For multibyte encodings, mb_strtolower
understands character encoding and treats characters as they should be treated.
See Also
- PHP Manual on
strtolower
: https://www.php.net/manual/en/function.strtolower.php - PHP Manual on
mb_strtolower
: https://www.php.net/manual/en/function.mb-strtolower.php - UTF-8 and Unicode for PHP devs: https://www.php.net/manual/en/book.mbstring.php