This functiom is binary-safe
This function is CASE INSENSITIVE
Natural Order String Comparison
<?php
int strnatcasecmp ( str $str1 , str $str2 )
where,
$str1 = The first STRING to compare
$str2 = The second STRING to compare
?>
<?php
$strnccmp01a = "Better late than never!";
$strnccmp01b = "BETTER LATE THAN NEVER!";
$lenght01 = 6;
// 6 initial characters
$intnccmp01ab = strnatcasecmp ($strnccmp01a,
$strnccmp01b);
if ($intnccmp01ab > 0)
{
echo substr($strnccmp01a, 0, $lenght01) .
'<br>is GREATER than<br>' .
substr($strnccmp01b, 0, $lenght01);
}
elseif ($intnccmp01ab < 0)
{
echo substr($strnccmp01a, 0, $lenght01) .
'<br>is LESS than<br>' .
substr($strnccmp01b, 0, $lenght01);
}
else
{
echo substr($strnccmp01a, 0, $lenght01) .
'<br>is EQUAL to<br>' .
substr($strnccmp01b, 0, $lenght01);
}
?>
<?php
$tst02 = glob('' . "*{.JPG,.jpg,.txt,.TXT,
.mp3,.MP3,
.wav,.WAV,
.m4a,.M4A}", GLOB_BRACE);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This code retrieves all files in the
specified directory, if they are:
.JPG,.jpg,.txt,.TXT,.mp3, .MP3, .wav, .WAV, .m4a, .M4A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
usort($tst02, "strnatcasecmp");
foreach($tst02 as $ts02)
{
echo basename($ts02) . '<br>';
}
?>
<?php
function str_dump($one, $two) {
echo "<br>$one<br>and<br>$two<br><br>Returned value: ";
var_dump(strnatcasecmp($one, $two));
echo '<br>- - - - - - -<br>';
}
echo "Testing strnatcasecmp() : basic functionality.<br>";
// Calling strnatcasecmp() with all possible arguments
echo '- - - - - - -<br>';
str_dump('A', 'a');
str_dump('a10', 'A20');
str_dump('A1b', 'a');
str_dump('x2-y7', 'x8-y8');
str_dump('1.010', '1.001');
str_dump(' ab', ' aB');
str_dump('acc ', 'acc');
str_dump(11.5, 10.5);
str_dump(10.5, 10.5E1);
str_dump('Rfc822.txt', 'rfc2086.txt');
str_dump('Rfc822.txt', 'rfc822.TXT');
str_dump('pIc 6', 'pic 7');
str_dump(0xFFF, 0Xfff);
?>
<?php
/* Preparation */
class a
{
function __toString()
{
return "Hello WORLD";
}
}
class b
{
function __toString()
{
return "HELLO world";
}
}
$a = new a();
$b = new b();
function str_dump($a, $b) {
echo "<br>$a<br>and<br>$b<br>";
var_dump(strnatcasecmp($a, $b));
echo '<br><br>';
}
echo "Testing strnatcasecmp() : variation:<br>";
str_dump('0', false);
str_dump('fooBar', '');
str_dump('', -1);
str_dump("Hello\0world", "Helloworld");
str_dump("\x0", "\0");
str_dump($a, $b);
?>