Demonstrating the power of the preg_find() function
$files = preg_find('/./', '../code');
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/tail-f.phps
../code/tlds-alpha-by-domain.txt
../code/showvalidemail.php.txt
../code/str_rotN.php
../code/tail-10.php
../code/rc4.inc.php
../code/strnpos.php
../code/wordwrap_bigwords.phps
../code/showvalidemail2.php
../code/argparse.php
../code/validate_email.inc.phps.bak
../code/array_unique_recursive.php
../code/str_case.phps
../code/hexstr.phps
../code/array_unique_recursive.phps
../code/str_case.php
../code/rc4.inc.phps
../code/bcceil.php
../code/tail-10.phps
../code/hexstr.php
../code/days_of_year.php
../code/str_split.phps
../code/strnpos.phps
../code/parse_str_quoted.inc.php
../code/morse.php
../code/number_to_words_apathy.php
../code/rc4.inc.asp
../code/wordwrap_bigwords.php
../code/number_to_words_ex.phps
../code/number_to_words.phps
../code/recursive_readdir.php
../code/code_debug_timing.php
../code/number_to_words.php
../code/foo.php
../code/ftruncate.php
../code/rc4.php
../code/rc4.phps
../code/str_split.php
../code/runtimer.php
../code/runtimer.phps
../code/dirlister.phps
../code/single_astmatch.php
../code/dirlister.php
../code/dominicsayers.php
../code/showvalidemail4.php
../code/200501152253
../code/number_to_words_ex.php
../code/showvalidemail.php
../code/404.phps
../code/showvalidemail3.php
../code/recursive_readdir.phps
../code/404.php
../code/maillog.phps
../code/morse.phps
../code/validate_email.inc.phps
../code/tail-f.php
$files = preg_find('/./', '../code', PREG_FIND_RECURSIVE);
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/tail-f.phps
../code/tlds-alpha-by-domain.txt
../code/showvalidemail.php.txt
../code/str_rotN.php
../code/tail-10.php
../code/rc4.inc.php
../code/strnpos.php
../code/wordwrap_bigwords.phps
../code/showvalidemail2.php
../code/argparse.php
../code/validate_email.inc.phps.bak
../code/array_unique_recursive.php
../code/str_case.phps
../code/hexstr.phps
../code/array_unique_recursive.phps
../code/str_case.php
../code/testdir/dir3/testfile3
../code/testdir/testfile1
../code/testdir/dir2/testfile2
../code/testdir/dir2/dir2.2/subdir/1/2/3/deepfile
../code/testdir/dir2/dir2.2/testfile4
../code/rc4.inc.phps
../code/bcceil.php
../code/tail-10.phps
../code/hexstr.php
../code/days_of_year.php
../code/str_split.phps
../code/strnpos.phps
../code/parse_str_quoted.inc.php
../code/morse.php
../code/number_to_words_apathy.php
../code/rc4.inc.asp
../code/wordwrap_bigwords.php
../code/number_to_words_ex.phps
../code/number_to_words.phps
../code/recursive_readdir.php
../code/code_debug_timing.php
../code/number_to_words.php
../code/foo.php
../code/ftruncate.php
../code/rc4.php
../code/rc4.phps
../code/str_split.php
../code/runtimer.php
../code/runtimer.phps
../code/dirlister.phps
../code/single_astmatch.php
../code/dirlister.php
../code/dominicsayers.php
../code/showvalidemail4.php
../code/200501152253
../code/number_to_words_ex.php
../code/showvalidemail.php
../code/404.phps
../code/showvalidemail3.php
../code/recursive_readdir.phps
../code/404.php
../code/maillog.phps
../code/morse.phps
../code/validate_email.inc.phps
../code/tail-f.php
$files = preg_find('/./', '../code', PREG_FIND_DIRONLY|PREG_FIND_RECURSIVE);
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/testdir
../code/testdir/dir3
../code/testdir/dir2
../code/testdir/dir2/dir2.2
../code/testdir/dir2/dir2.2/subdir
../code/testdir/dir2/dir2.2/subdir/1
../code/testdir/dir2/dir2.2/subdir/1/2
../code/testdir/dir2/dir2.2/subdir/1/2/3
$files = preg_find('/^str_.*?\.php$/D', '../code');
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/str_rotN.php
../code/str_case.php
../code/str_split.php
$files = preg_find('/^str_.*?\.php$/D', '../code', PREG_FIND_RETURNASSOC);
print_r($files);
Output:Array
(
[../code/str_rotN.php] => Array
(
[stat] => Array
(
[0] => 2308
[1] => 14571947
[2] => 33204
[3] => 1
[4] => 1001
[5] => 1001
[6] => 0
[7] => 652
[8] => 1775692685
[9] => 1774894793
[10] => 1774894793
[11] => 4096
[12] => 8
[dev] => 2308
[ino] => 14571947
[mode] => 33204
[nlink] => 1
[uid] => 1001
[gid] => 1001
[rdev] => 0
[size] => 652
[atime] => 1775692685
[mtime] => 1774894793
[ctime] => 1774894793
[blksize] => 4096
[blocks] => 8
)
[du] => 4096
[uid] => 1001
[gid] => 1001
[filetype] => file
[mimetype] => text/x-php
[dirname] => ../code
[basename] => str_rotN.php
[ext] => php
[owner] =>
)
[../code/str_case.php] => Array
(
[stat] => Array
(
[0] => 2308
[1] => 14571945
[2] => 33204
[3] => 1
[4] => 1001
[5] => 1001
[6] => 0
[7] => 2903
[8] => 1775692685
[9] => 1774894793
[10] => 1774894793
[11] => 4096
[12] => 8
[dev] => 2308
[ino] => 14571945
[mode] => 33204
[nlink] => 1
[uid] => 1001
[gid] => 1001
[rdev] => 0
[size] => 2903
[atime] => 1775692685
[mtime] => 1774894793
[ctime] => 1774894793
[blksize] => 4096
[blocks] => 8
)
[du] => 4096
[uid] => 1001
[gid] => 1001
[filetype] => file
[mimetype] => text/x-php
[dirname] => ../code
[basename] => str_case.php
[ext] => php
[owner] =>
)
[../code/str_split.php] => Array
(
[stat] => Array
(
[0] => 2308
[1] => 14571948
[2] => 33204
[3] => 1
[4] => 1001
[5] => 1001
[6] => 0
[7] => 745
[8] => 1775692685
[9] => 1774894793
[10] => 1774894793
[11] => 4096
[12] => 8
[dev] => 2308
[ino] => 14571948
[mode] => 33204
[nlink] => 1
[uid] => 1001
[gid] => 1001
[rdev] => 0
[size] => 745
[atime] => 1775692685
[mtime] => 1774894793
[ctime] => 1774894793
[blksize] => 4096
[blocks] => 8
)
[du] => 4096
[uid] => 1001
[gid] => 1001
[filetype] => file
[mimetype] => text/x-php
[dirname] => ../code
[basename] => str_split.php
[ext] => php
[owner] =>
)
)
$files = preg_find('/./', '../code', PREG_FIND_SORTKEYS);
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/200501152253
../code/404.php
../code/404.phps
../code/argparse.php
../code/array_unique_recursive.php
../code/array_unique_recursive.phps
../code/bcceil.php
../code/code_debug_timing.php
../code/days_of_year.php
../code/dirlister.php
../code/dirlister.phps
../code/dominicsayers.php
../code/foo.php
../code/ftruncate.php
../code/hexstr.php
../code/hexstr.phps
../code/maillog.phps
../code/morse.php
../code/morse.phps
../code/number_to_words.php
../code/number_to_words.phps
../code/number_to_words_apathy.php
../code/number_to_words_ex.php
../code/number_to_words_ex.phps
../code/parse_str_quoted.inc.php
../code/rc4.inc.asp
../code/rc4.inc.php
../code/rc4.inc.phps
../code/rc4.php
../code/rc4.phps
../code/recursive_readdir.php
../code/recursive_readdir.phps
../code/runtimer.php
../code/runtimer.phps
../code/showvalidemail.php
../code/showvalidemail.php.txt
../code/showvalidemail2.php
../code/showvalidemail3.php
../code/showvalidemail4.php
../code/single_astmatch.php
../code/str_case.php
../code/str_case.phps
../code/str_rotN.php
../code/str_split.php
../code/str_split.phps
../code/strnpos.php
../code/strnpos.phps
../code/tail-10.php
../code/tail-10.phps
../code/tail-f.php
../code/tail-f.phps
../code/tlds-alpha-by-domain.txt
../code/validate_email.inc.phps
../code/validate_email.inc.phps.bak
../code/wordwrap_bigwords.php
../code/wordwrap_bigwords.phps
$files = preg_find('/./', '../code', PREG_FIND_SORTKEYS|PREG_FIND_SORTDESC);
foreach($files as $file) printf("<br>%s\n", $file);
Output:
../code/wordwrap_bigwords.phps
../code/wordwrap_bigwords.php
../code/validate_email.inc.phps.bak
../code/validate_email.inc.phps
../code/tlds-alpha-by-domain.txt
../code/tail-f.phps
../code/tail-f.php
../code/tail-10.phps
../code/tail-10.php
../code/strnpos.phps
../code/strnpos.php
../code/str_split.phps
../code/str_split.php
../code/str_rotN.php
../code/str_case.phps
../code/str_case.php
../code/single_astmatch.php
../code/showvalidemail4.php
../code/showvalidemail3.php
../code/showvalidemail2.php
../code/showvalidemail.php.txt
../code/showvalidemail.php
../code/runtimer.phps
../code/runtimer.php
../code/recursive_readdir.phps
../code/recursive_readdir.php
../code/rc4.phps
../code/rc4.php
../code/rc4.inc.phps
../code/rc4.inc.php
../code/rc4.inc.asp
../code/parse_str_quoted.inc.php
../code/number_to_words_ex.phps
../code/number_to_words_ex.php
../code/number_to_words_apathy.php
../code/number_to_words.phps
../code/number_to_words.php
../code/morse.phps
../code/morse.php
../code/maillog.phps
../code/hexstr.phps
../code/hexstr.php
../code/ftruncate.php
../code/foo.php
../code/dominicsayers.php
../code/dirlister.phps
../code/dirlister.php
../code/days_of_year.php
../code/code_debug_timing.php
../code/bcceil.php
../code/array_unique_recursive.phps
../code/array_unique_recursive.php
../code/argparse.php
../code/404.phps
../code/404.php
../code/200501152253
$files = preg_find('/./', '../code',
PREG_FIND_RECURSIVE|PREG_FIND_RETURNASSOC|PREG_FIND_SORTFILESIZE|PREG_FIND_SORTDESC);
$i=1;
foreach($files as $file => $stats) {
printf('<br>%d) %d %s', $i, $stats['stat']['size'], $file);
$i++;
if ($i > 5) break;
}
Output:
1) 35552 ../code/showvalidemail4.php
2) 32065 ../code/showvalidemail3.php
3) 31899 ../code/showvalidemail.php.txt
4) 31899 ../code/showvalidemail.php
5) 30667 ../code/showvalidemail2.php
$files = preg_find('/./', '../code',
PREG_FIND_RECURSIVE|PREG_FIND_RETURNASSOC|PREG_FIND_SORTMODIFIED|PREG_FIND_SORTDESC);
$i=1;
foreach($files as $file => $stats) {
printf('<br>%d) %s - %d bytes - %s', $i,
date("Y-m-d H:i:s", $stats['stat']['mtime']), $stats['stat']['size'], $file);
$i++;
if ($i > 10) break;
}
Output:
1) 2026-03-30 18:19:53 - 676 bytes - ../code/tail-f.phps
2) 2026-03-30 18:19:53 - 10213 bytes - ../code/tlds-alpha-by-domain.txt
3) 2026-03-30 18:19:53 - 31899 bytes - ../code/showvalidemail.php.txt
4) 2026-03-30 18:19:53 - 652 bytes - ../code/str_rotN.php
5) 2026-03-30 18:19:53 - 3155 bytes - ../code/tail-10.php
6) 2026-03-30 18:19:53 - 1963 bytes - ../code/rc4.inc.php
7) 2026-03-30 18:19:53 - 1260 bytes - ../code/strnpos.php
8) 2026-03-30 18:19:53 - 950 bytes - ../code/wordwrap_bigwords.phps
9) 2026-03-30 18:19:53 - 30667 bytes - ../code/showvalidemail2.php
10) 2026-03-30 18:19:53 - 294 bytes - ../code/argparse.phpFiles in testdir, recursive: Array
(
[0] => ../code/testdir/dir3/testfile3
[1] => ../code/testdir/testfile1
[2] => ../code/testdir/dir2/testfile2
[3] => ../code/testdir/dir2/dir2.2/subdir/1/2/3/deepfile
[4] => ../code/testdir/dir2/dir2.2/testfile4
)
Files, recursive, in date modified order:
1774894793 - 2026-03-30 18:19:53 - ./preg_find_2.3.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find_ex_2.4.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find_2.4.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find_ex_2.3.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find_ex.php 1774894793 - 2026-03-30 18:19:53 - ./old/2.0/preg_find.php 1774894793 - 2026-03-30 18:19:53 - ./old/2.0/preg_find_ex.php 1774894793 - 2026-03-30 18:19:53 - ./old/2.0/preg_find_ex.phps 1774894793 - 2026-03-30 18:19:53 - ./old/2.0/preg_find.phps 1774894793 - 2026-03-30 18:19:53 - ./old/2.2/preg_find.php 1774894793 - 2026-03-30 18:19:53 - ./old/2.3/preg_find.php 1774894793 - 2026-03-30 18:19:53 - ./old/2.1/preg_find.php 1774894793 - 2026-03-30 18:19:53 - ./preg_find_ex.phps 1774894793 - 2026-03-30 18:19:53 - ./cisco.txt 1774894793 - 2026-03-30 18:19:53 - ./.preg_find_2.4.php.swp 1774894793 - 2026-03-30 18:19:53 - ./preg_find.phps 1774894793 - 2026-03-30 18:19:53 - ./preg_find.php.txt
Files in ../code, recursive, in alphabetical order:
Array ( [50] => ../code/200501152253 [56] => ../code/404.php [53] => ../code/404.phps [9] => ../code/argparse.php [11] => ../code/array_unique_recursive.php [14] => ../code/array_unique_recursive.phps [22] => ../code/bcceil.php [36] => ../code/code_debug_timing.php [25] => ../code/days_of_year.php [47] => ../code/dirlister.php [45] => ../code/dirlister.phps [48] => ../code/dominicsayers.php [38] => ../code/foo.php [39] => ../code/ftruncate.php [24] => ../code/hexstr.php [13] => ../code/hexstr.phps [57] => ../code/maillog.phps [29] => ../code/morse.php [58] => ../code/morse.phps [37] => ../code/number_to_words.php [34] => ../code/number_to_words.phps [30] => ../code/number_to_words_apathy.php [51] => ../code/number_to_words_ex.php [33] => ../code/number_to_words_ex.phps [28] => ../code/parse_str_quoted.inc.php [31] => ../code/rc4.inc.asp [5] => ../code/rc4.inc.php [21] => ../code/rc4.inc.phps [40] => ../code/rc4.php [41] => ../code/rc4.phps [35] => ../code/recursive_readdir.php [55] => ../code/recursive_readdir.phps [43] => ../code/runtimer.php [44] => ../code/runtimer.phps [52] => ../code/showvalidemail.php [2] => ../code/showvalidemail.php.txt [8] => ../code/showvalidemail2.php [54] => ../code/showvalidemail3.php [49] => ../code/showvalidemail4.php [46] => ../code/single_astmatch.php [15] => ../code/str_case.php [12] => ../code/str_case.phps [3] => ../code/str_rotN.php [42] => ../code/str_split.php [26] => ../code/str_split.phps [6] => ../code/strnpos.php [27] => ../code/strnpos.phps [4] => ../code/tail-10.php [23] => ../code/tail-10.phps [60] => ../code/tail-f.php [0] => ../code/tail-f.phps [19] => ../code/testdir/dir2/dir2.2/subdir/1/2/3/deepfile [20] => ../code/testdir/dir2/dir2.2/testfile4 [18] => ../code/testdir/dir2/testfile2 [16] => ../code/testdir/dir3/testfile3 [17] => ../code/testdir/testfile1 [1] => ../code/tlds-alpha-by-domain.txt [59] => ../code/validate_email.inc.phps [10] => ../code/validate_email.inc.phps.bak [32] => ../code/wordwrap_bigwords.php [7] => ../code/wordwrap_bigwords.phps )
Files in ../code, recursive, in alphabetical order on file basename:
Array ( [0] => ../code/200501152253 [1] => ../code/404.php [2] => ../code/404.phps [3] => ../code/argparse.php [4] => ../code/array_unique_recursive.php [5] => ../code/array_unique_recursive.phps [6] => ../code/bcceil.php [7] => ../code/code_debug_timing.php [8] => ../code/days_of_year.php [9] => ../code/testdir/dir2/dir2.2/subdir/1/2/3/deepfile [10] => ../code/dirlister.php [11] => ../code/dirlister.phps [12] => ../code/dominicsayers.php [13] => ../code/foo.php [14] => ../code/ftruncate.php [15] => ../code/hexstr.php [16] => ../code/hexstr.phps [17] => ../code/maillog.phps [18] => ../code/morse.php [19] => ../code/morse.phps [20] => ../code/number_to_words.php [21] => ../code/number_to_words.phps [22] => ../code/number_to_words_apathy.php [23] => ../code/number_to_words_ex.php [24] => ../code/number_to_words_ex.phps [25] => ../code/parse_str_quoted.inc.php [26] => ../code/rc4.inc.asp [27] => ../code/rc4.inc.php [28] => ../code/rc4.inc.phps [29] => ../code/rc4.php [30] => ../code/rc4.phps [31] => ../code/recursive_readdir.php [32] => ../code/recursive_readdir.phps [33] => ../code/runtimer.php [34] => ../code/runtimer.phps [35] => ../code/showvalidemail.php [36] => ../code/showvalidemail.php.txt [37] => ../code/showvalidemail2.php [38] => ../code/showvalidemail3.php [39] => ../code/showvalidemail4.php [40] => ../code/single_astmatch.php [41] => ../code/str_case.php [42] => ../code/str_case.phps [43] => ../code/str_rotN.php [44] => ../code/str_split.php [45] => ../code/str_split.phps [46] => ../code/strnpos.php [47] => ../code/strnpos.phps [48] => ../code/tail-10.php [49] => ../code/tail-10.phps [50] => ../code/tail-f.php [51] => ../code/tail-f.phps [52] => ../code/testdir/testfile1 [53] => ../code/testdir/dir2/testfile2 [54] => ../code/testdir/dir3/testfile3 [55] => ../code/testdir/dir2/dir2.2/testfile4 [56] => ../code/tlds-alpha-by-domain.txt [57] => ../code/validate_email.inc.phps [58] => ../code/validate_email.inc.phps.bak [59] => ../code/wordwrap_bigwords.php [60] => ../code/wordwrap_bigwords.phps )
Files in ../code, recursive, in reverse file size order:
35552 bytes - 2026-03-30 18:19:53 - ../code/showvalidemail4.php 32065 bytes - 2026-03-30 18:19:53 - ../code/showvalidemail3.php 31899 bytes - 2026-03-30 18:19:53 - ../code/showvalidemail.php.txt 31899 bytes - 2026-03-30 18:19:53 - ../code/showvalidemail.php 30667 bytes - 2026-03-30 18:19:53 - ../code/showvalidemail2.php 13584 bytes - 2026-03-30 18:19:53 - ../code/dominicsayers.php 12595 bytes - 2026-03-30 18:19:53 - ../code/rc4.inc.asp 10213 bytes - 2026-03-30 18:19:53 - ../code/tlds-alpha-by-domain.txt 5987 bytes - 2026-03-30 18:19:53 - ../code/dirlister.phps 5987 bytes - 2026-03-30 18:19:53 - ../code/dirlister.php 3964 bytes - 2026-03-30 18:19:53 - ../code/validate_email.inc.phps 3184 bytes - 2026-03-30 18:19:53 - ../code/404.phps 3184 bytes - 2026-03-30 18:19:53 - ../code/404.php 3155 bytes - 2026-03-30 18:19:53 - ../code/tail-10.php 3155 bytes - 2026-03-30 18:19:53 - ../code/tail-10.phps 2997 bytes - 2026-03-30 18:19:53 - ../code/number_to_words.phps 2997 bytes - 2026-03-30 18:19:53 - ../code/number_to_words.php 2903 bytes - 2026-03-30 18:19:53 - ../code/str_case.phps 2903 bytes - 2026-03-30 18:19:53 - ../code/str_case.php 2606 bytes - 2026-03-30 18:19:53 - ../code/parse_str_quoted.inc.php 2246 bytes - 2026-03-30 18:19:53 - ../code/array_unique_recursive.php 2246 bytes - 2026-03-30 18:19:53 - ../code/array_unique_recursive.phps 2013 bytes - 2026-03-30 18:19:53 - ../code/code_debug_timing.php 2012 bytes - 2026-03-30 18:19:53 - ../code/number_to_words_apathy.php 1963 bytes - 2026-03-30 18:19:53 - ../code/rc4.inc.php 1963 bytes - 2026-03-30 18:19:53 - ../code/rc4.inc.phps 1835 bytes - 2026-03-30 18:19:53 - ../code/rc4.php 1835 bytes - 2026-03-30 18:19:53 - ../code/rc4.phps 1827 bytes - 2026-03-30 18:19:53 - ../code/validate_email.inc.phps.bak 1497 bytes - 2026-03-30 18:19:53 - ../code/morse.php 1497 bytes - 2026-03-30 18:19:53 - ../code/morse.phps 1467 bytes - 2026-03-30 18:19:53 - ../code/maillog.phps 1322 bytes - 2026-03-30 18:19:53 - ../code/hexstr.phps 1322 bytes - 2026-03-30 18:19:53 - ../code/hexstr.php 1260 bytes - 2026-03-30 18:19:53 - ../code/strnpos.php 1260 bytes - 2026-03-30 18:19:53 - ../code/strnpos.phps 1126 bytes - 2026-03-30 18:19:53 - ../code/recursive_readdir.php 1126 bytes - 2026-03-30 18:19:53 - ../code/recursive_readdir.phps 950 bytes - 2026-03-30 18:19:53 - ../code/wordwrap_bigwords.phps 950 bytes - 2026-03-30 18:19:53 - ../code/wordwrap_bigwords.php 745 bytes - 2026-03-30 18:19:53 - ../code/str_split.phps 745 bytes - 2026-03-30 18:19:53 - ../code/str_split.php 681 bytes - 2026-03-30 18:19:53 - ../code/bcceil.php 676 bytes - 2026-03-30 18:19:53 - ../code/tail-f.phps 676 bytes - 2026-03-30 18:19:53 - ../code/tail-f.php 652 bytes - 2026-03-30 18:19:53 - ../code/str_rotN.php 600 bytes - 2026-03-30 18:19:53 - ../code/runtimer.php 600 bytes - 2026-03-30 18:19:53 - ../code/runtimer.phps 491 bytes - 2026-03-30 18:19:53 - ../code/ftruncate.php 481 bytes - 2026-03-30 18:19:53 - ../code/days_of_year.php 374 bytes - 2026-03-30 18:19:53 - ../code/number_to_words_ex.phps 374 bytes - 2026-03-30 18:19:53 - ../code/number_to_words_ex.php 294 bytes - 2026-03-30 18:19:53 - ../code/argparse.php 231 bytes - 2026-03-30 18:19:53 - ../code/single_astmatch.php 41 bytes - 2026-03-30 18:19:53 - ../code/foo.php 0 bytes - 2026-03-30 18:19:53 - ../code/testdir/dir3/testfile3 0 bytes - 2026-03-30 18:19:53 - ../code/testdir/testfile1 0 bytes - 2026-03-30 18:19:53 - ../code/testdir/dir2/testfile2 0 bytes - 2026-03-30 18:19:53 - ../code/testdir/dir2/dir2.2/subdir/1/2/3/deepfile 0 bytes - 2026-03-30 18:19:53 - ../code/testdir/dir2/dir2.2/testfile4 0 bytes - 2026-03-30 18:19:53 - ../code/200501152253