3v4l.org

run code in 300+ PHP versions simultaneously
<?php function ufirst( $str ) { $octetCode = ord( $str ); // See https://en.wikipedia.org/wiki/ASCII#Printable_characters if ( $octetCode < 96 ) { // Assume this is an uppercase/uncased ASCII character return (string)$str; } elseif ( $octetCode < 128 ) { // Assume this is a lowercase/uncased ASCII character return ucfirst( $str ); } $first = mb_substr( $str, 0, 1 ); return ( strlen( $first ) !== 1 ) // Assume this is a multibyte character and mb_internal_encoding() is appropriate ? mb_strtoupper( $first ) . mb_substr( $str, 1 ) // Assume this is a non-multibyte character and LC_CASE is appropriate : ucfirst( $str ); } $str = "ალევის_სამების_მონასტერი.jpg"; $str = ufirst($str); echo $str; ?>
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
Ალევის_სამების_მონასტერი.jpg
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.34
ალევის_სამების_მონასტერი.jpg

preferences:
280.99 ms | 404 KiB | 473 Q